我想从.txt文件中获取数字,并通过命令行将它们输入到如下例所示的程序中。我使用./program<运行exe。 input.txt中。但是它打印随机数。我做错了什么?
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//print 1st number
cout << argv[1];
}
答案 0 :(得分:3)
cout << argv[1];
相当于:
char* arg = argv[1];
cout << arg;
它只是将第一个参数的值打印到程序
在您的情况下,您没有为程序提供参数。
使用时,
./program < input.txt
input.ext
的内容变为您的计划的stdin
。您可以使用以下方式处理:
int c;
while ( (c = fgetc(stdin)) != EOF )
{
fputc(c, stdout);
}
如果您想继续使用C ++流,可以使用:
int c;
while ( (c = cin.get()) != EOF )
{
cout.put(c);
}
答案 1 :(得分:2)
你可以这样做:
./program $(cat input.txt)
这就是诀窍。
例如,如果input.txt的数字用空格分隔:
33 1212 1555
跑步:
./program $(cat input.txt)
将33打印到终端。
答案 2 :(得分:1)
为了能够使用argv,需要提供参数,即
./ program 23 45 67
对于./program&lt; input.txt你需要从cin(标准输入)读取。
#include <iostream>
using namespace std;
int n;
int main()
{
cin >> n;
cout << n;
}