来自文本文件的 C++ 命令行输入

标签 c++

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

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
//print 1st number
cout << argv[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);
} 

关于来自文本文件的 C++ 命令行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557410/

相关文章:

c++ - 是否可以比较#ifdef 值以供有条件使用

c++ - tensorflow内核代码修改

具有私有(private)构造函数的 C++ 单例

c++ - 用固定值初始化多维 vector

c++ - 使用 SSE 将 8 位整数除以 4(或移位)

c++ - 我正在尝试用 C++ 创建一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?

c++ - 是否可以使用填充构造函数创建 std::vector<std::unique_ptr<Bar>> ?

如果对象被删除,C++ 使所有指针无效

c++ - 较低级别的 std::atomic<unsigned int>

c++ - 字符串中的 Rs 数