【问题标题】:C++ command line input from a text file来自文本文件的 C++ 命令行输入
【发布时间】: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++


    【解决方案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);
    } 
    

    【讨论】:

    • 因为fgetcfputc 是真正的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;
      }
      

      【讨论】:

        猜你喜欢
        • 2013-07-06
        • 1970-01-01
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多