gpt4 book ai didi

c++ - 如何在不使用文件扩展名的情况下使用命令行参数在 C++ 中打开文本文件?

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:26 24 4
gpt4 key购买 nike

我正在编写一个 C++ 程序,我将文本文件的名称作为命令行参数传递,然后操作该文本文件。但是我在引用文本文件时遇到了问题。问题是,我希望能够仅通过名称引用传入的文件而无需扩展名。例如,我希望能够像这样引用代码:

./ProgramName exampleTextFileName

不是这样的:

./ProgramName exampleTextFileName.txt

我可以通过简单地打开存储在 argv[1] 中的文件名并在命令行上使用 .txt 来访问该文件。但是我该怎么做而不必在最后传入 .txt 呢?我尝试通过使用 argv[1] 并手动添加引号和 .txt 来执行此操作,但是当我尝试使用附加名称打开文件时出现错误。我假设文件名的变量类型实际上不是字符串?我该如何正确地做到这一点?

这是我尝试使用的代码:

int main(int argc, char *argv[]) {
string line;
string fileName;
fileName = argv[1];
fileName = "\"" + fileName + ".txt\"";
cout << fileName;
ifstream myfile (fileName);
if (myfile.is_open()) {
while ( getline (myfile,line) ) {
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file";


return 0;}

最佳答案

fileName 不需要双引号,这应该足够了:

...
string fileName = argv[1];
fileName += ".txt";
...

我还会在 argc 上添加检查以确保实际给出了参数。

关于c++ - 如何在不使用文件扩展名的情况下使用命令行参数在 C++ 中打开文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com