如何从命令行参数中的输入文件中正确提取数字

时间:2019-01-24 23:48:12

标签: visual-c++

我正在尝试使用ifstream从argv [1]中名为“ inputFile”的文件中提取两个数字,并且提取运算符似乎正在提取代码位而不是所需的数字。

通过右键单击项目将

inputFile.txt放入命令行操作器,转到属性->调试->命令参数->在Visual Studio 2017中将inputFile.txt键入命令参数中。

inputFile.txt文件如下:

1 2

  #include <iostream>
  #include <fstream>
  #include <string>
  #include <iomanip>

  using namespace std;

  int main(int argc, char *argv[])
  {
  //Test opening file
  cout << "Input file: " << argv[1] << endl;
  ifstream in(argv[1]);
  if (!in)
  {
    cerr << "Unable to open " << argv[1] << " for input";
    return 1;
  }

      //extract numbers
  int num1;
  int num2;
  in >> num1 >> num2;

  cout << num1 << endl << num2 << endl;

  in.close();
  return 0;
}

我希望int num1保持1,而int num2保持2,但是每个变量都保留数字-858993460。

1 个答案:

答案 0 :(得分:0)

您确定要读取的文件具有所需的数据吗?这段代码对我来说很好,可以用Visual Studio 2005编译。但是,如果我更改文件的内容,则不写数字(例如,如果我写:a b),则num1和num2以-858993460结尾。