devc++文件输入不工作

devc++ input from file does not work

本文关键字:工作 输入 文件 devc++      更新时间:2023-10-16

我试图将。txt内容重定向到。exe

program.exe & lt;file.txt

和file.txt的内容为

35345345345
34543534562
23435635432
35683045342
69849593458
95238942394
28934928341

但是数组的第一个索引是文件路径,不显示文件内容。

int main(int argc, char *args[])
   {
    for(int c = 0; c<argc; c++){
            cout << "Param " << c << ": " << args[c] << "n";
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
所需输出:

Param0: 35345345345
Param1: 34543534562
Param2: 23435635432
Param3: 35683045342
Param4: 69849593458
Param5: 95238942394
Param6: 28934928341

myapp < file.txt语法传递给stdin(或者您喜欢的cin),而不是参数。

您误解了argcargv的用途。它们包含程序的命令行参数。例如,如果您输入:

program.exe something 123

argv指向的空终止字符串将是program.exesomething123

您正在尝试使用< file.txt将文件的内容重定向到program.exe。这是而不是命令行参数。它只是将文件的内容重定向到程序的标准输入。要获得这些内容,您需要从std::cin中提取。

当您说"但是数组中的第一个索引是文件路径并且文件内容未显示"时,听起来您正在尝试从argv和argc读取输入。尖括号壳操作符不是这样工作的。相反,stdin (cin和几个C函数从中读取的内容)具有该文件的内容。因此,要从上面例子中的文件中读取,您可以使用cin.

如果你真的想要一个文件自动插入到参数列表中,我无法帮助你使用windows shell。但是,如果您可以选择使用bash,则可以使用以下命令:

program.exe `cat file.txt`

反打号操作符展开为其中包含的命令的结果,因此内容随后作为参数传递给program.exe(同样,在bash shell下而不是windows shell下)

这段代码完成了我对另一段代码的期望。谢谢所有帮助过我的人。

#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
while (getline(cin, line))
    cout << "line: " << line << 'n';
}
相关文章: