来自文本文件的 C++ 命令行输入
Posted
技术标签:
【中文标题】来自文本文件的 C++ 命令行输入【英文标题】:C++ command line input from a text file 【发布时间】: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];
【问题讨论】:
【参考方案1】: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++。是的,当然,随便。
知道如何将值放入变量而不是打印出来吗?【参考方案2】:
你可以这样做:
./program $(cat input.txt)
这就是诀窍。
例如,如果 input.txt 中的数字由空格分隔:
33 1212 1555
跑步:
./program $(cat input.txt)
将 33 打印到终端。
【讨论】:
【参考方案3】:为了能够使用 argv 数字需要作为参数提供,即
./程序 23 45 67
对于./program
#include <iostream>
using namespace std;
int n;
int main()
cin >> n;
cout << n;
【讨论】:
以上是关于来自文本文件的 C++ 命令行输入的主要内容,如果未能解决你的问题,请参考以下文章