【发布时间】:2014-05-09 05:46:15
【问题描述】:
我想从 .txt 文件中获取数字并通过命令行将它们输入到程序中,如下例所示。我使用 ./program
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//print 1st number
cout << argv[1];
}
【问题讨论】:
标签: c++
我想从 .txt 文件中获取数字并通过命令行将它们输入到程序中,如下例所示。我使用 ./program
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//print 1st number
cout << argv[1];
}
【问题讨论】:
标签: c++
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);
}
【讨论】:
fgetc 和fputc 是真正的C++。是的,当然,随便。
你可以这样做:
./program $(cat input.txt)
这就是诀窍。
例如,如果 input.txt 中的数字由空格分隔:
33 1212 1555
跑步:
./program $(cat input.txt)
将 33 打印到终端。
【讨论】:
为了能够使用 argv 数字需要作为参数提供,即
./程序 23 45 67
对于./program
#include <iostream>
using namespace std;
int n;
int main()
{
cin >> n;
cout << n;
}
【讨论】: