c ++命令行argmuent不从文本文件中打印出值

时间:2017-11-02 02:45:38

标签: c++

我有一个我试图打开的numers文件,但是当我跑的时候 我的文件不打印值,只给我0。

代码:

int main(int argc,char *argv[])
{
 for (int count=0; count < argc; ++count)
    std::cout << count << " " << argv[count] << '\n';
  return 0;
 }

文件:

        198      4          12

我运行时获得的输出./text&lt; file.txt的 是0。

2 个答案:

答案 0 :(得分:1)

您正在使用的< file.txt语法实质上是模拟键盘输入,即传统上以C ++中的std::cin或C中的stdin已知/访问的输入流。

有关该主题的更多背景信息:What are the shell's control and redirection operators?

您的代码正在尝试迭代命令行参数,这既不会从std::cin中提取输入,也不会在知道涉及文件的情况下访问输入。

如果您希望或需要从std::cin中提取数据(这与您的<语法一致),请查看以下参考资料,并举例说明如何完成:std::cin, std::wcin

如果要将输入作为文件处理,请尝试使用示例:std::basic_ifstream

(请注意,后一个示例处理二进制文件,但您可以对文本文件进行适当的更改。)

答案 1 :(得分:0)

我认为您正在尝试将文件内容重定向到INPUT流,请尝试以下代码段:

remove