我正在尝试使用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。
答案 0 :(得分:0)
您确定要读取的文件具有所需的数据吗?这段代码对我来说很好,可以用Visual Studio 2005编译。但是,如果我更改文件的内容,则不写数字(例如,如果我写:a b),则num1和num2以-858993460结尾。