C++ devc&x2B+;文件中的输入无效

C++ devc&x2B+;文件中的输入无效,c++,dev-c++,C++,Dev C++,我正在尝试将.txt内容重定向到.exe program.exe

我正在尝试将.txt内容重定向到.exe

program.exe 和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;
}
当您说“但是数组中的第一个索引是文件路径,并且文件内容不显示”时,听起来好像您试图从argv和argc读取输入。“尖括号壳”操作符不是这样工作的。相反,stdin(cin和几个C函数所读取的内容)具有该文件的内容。因此,要从上述案例中读取文件,您需要使用cin

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

program.exe `cat file.txt`

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

myapp
语法传递给
stdin
(或者
cin
,如果您愿意的话),不是参数。

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

program.exe something 123
argv
指向的以null结尾的字符串将是
program.exe
something
123


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

中提取这些内容。这段代码完成了我希望对另一段代码执行的操作。谢谢所有帮忙的人

#include <iostream>
#include <string>

using namespace std;

int main()
{
string line;
while (getline(cin, line))
    cout << "line: " << line << '\n';
}
#包括
#包括
使用名称空间std;
int main()
{
弦线;
while(getline(cin,line))

你能展示你的代码吗?很难说没有看到程序的源代码,你能把它添加到问题中吗?编辑,src include.hmmm。我明白了。有可能改变行为吗?你使用的是什么shell?见medgno的回答。谢谢。我使用的是windows atm.btw,这很有用,因为我大部分时间都使用linux。
#include <iostream>
#include <string>

using namespace std;

int main()
{
string line;
while (getline(cin, line))
    cout << "line: " << line << '\n';
}