从文本文件输入C ++命令行

时间:2014-05-09 05:46:16

标签: c++

我想从.txt文件中获取数字,并通过命令行将它们输入到如下例所示的程序中。我使用./program<运行exe。 input.txt中。但是它打印随机数。我做错了什么?

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
//print 1st number
cout << argv[1];
}

3 个答案:

答案 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;
}