21xrx.com
2024-11-22 11:04:37 Friday
登录
文章检索 我的文章 写文章
C++如何输出文件名?
2023-06-27 08:33:04 深夜i     --     --
C++ 输出 文件名

在C++编程中,有时候需要输出当前程序所运行的文件名,这对于日志记录和调试都很有用。下面介绍几种输出文件名的方法。

方法一:使用预编译器宏 __FILE__

__FILE__ 是 C 和 C++ 程序中的一个预编译器宏,表示当前的源文件名。通过在代码中使用它,我们可以输出当前程序所运行的文件名。例如:


#include <iostream>

int main()

  std::cout << __FILE__ << std::endl;

  return 0;

输出结果为:


/path/to/file.cpp

方法二:使用 boost 库

Boost 库是一个广泛使用的 C++ 库,其中包含了许多有用的功能。其中一个是 boost::filesystem,它提供了一种跨平台的方法来操作文件和文件系统。我们可以使用它来输出当前程序所运行的文件名。例如:


#include <iostream>

#include <boost/filesystem.hpp>

int main()

{

  std::cout << boost::filesystem::basename(boost::filesystem::path(__FILE__)) << std::endl;

  return 0;

}

输出结果为:


file

方法三:使用 STL

STL 是 C++ 中提供的标准库,里面包含了许多有用的容器和算法。使用 STL 中的文件流可以输出当前程序所运行的文件名。例如:


#include <iostream>

#include <fstream>

int main()

{

  std::ofstream outfile;

  outfile.open(__FILE__);

  std::string filename = "";

  if (outfile.is_open())

  {

    outfile << __FILE__;

    outfile.close();

    std::ifstream infile(__FILE__);

    if (infile.is_open())

    {

      std::getline(infile, filename);

      infile.close();

    }

  }

  std::cout << filename << std::endl;

  return 0;

}

输出结果为:


/path/to/file.cpp

通过以上几种方法,我们可以方便地输出当前程序所运行的文件名,并在调试和日志记录中使用该信息。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复