请帮我写一段c++读文件代码,文件名从文件流读入:string file_name = argv[1];
时间: 2024-10-21 15:07:43 浏览: 16
如果你想要从命令行参数中动态读取文件名,你可以稍微修改之前的代码,使其接受命令行参数。这需要用到`#include <cstdlib>`头文件,它包含了`argc`和`argv`,分别表示命令行参数的数量和数组。以下是相应的修改版本:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib> // 包含argc和argv
int main(int argc, char *argv[]) {
if (argc != 2) {
std::cerr << "Usage: program_name filename\n";
return 1;
}
std::string file_name = argv[1]; // 从命令行参数获取文件名
std::ifstream inputFile(file_name);
if (!inputFile) {
std::cerr << "无法打开文件 " << file_name << "!" << std::endl;
return 1;
}
std::string line;
while (std::getline(inputFile, line)) {
std::cout << "Line: " << line << std::endl;
}
inputFile.close();
return 0;
}
```
现在,当你运行程序时,需要提供一个参数,比如 `./program_name example.txt`。如果命令行参数不足或格式不对,程序会给出错误提示。
阅读全文