【发布时间】:2013-10-12 00:13:47
【问题描述】:
我必须从包含一堆二进制数的文本文件中读取,然后将它们转换为整数并将它们存储在一个数组中。我已经创建了一个函数来执行此操作,但是,该函数只返回一个数字。它似乎没有通过文件,或者它只是不起作用。谁能弄清楚为什么?
void readf4()
{
std::ifstream inFile("f4.txt");
std::vector<int> intArray;
std::string line;
//unsigned num = 0;
int inc = 0;
char * pEnd;
for(unsigned long int result; std::getline(inFile,line); result = strtol(line.c_str(),&pEnd,10))
{
//seg fault if I include these lines
//intArray[inc] = result;
//inc++;
cout<<result;//always returns 9223372036854775807
cout<<"\n";
}
}
提前致谢!
【问题讨论】:
-
在循环的第一次迭代中,
result未初始化。for循环中的增量表达式在迭代之间执行,但不是在第一次迭代之前。 -
intArray[inc]不起作用,因为intArray的大小为零。它没有有效的索引。你想要intArray.push_back(result); -
@igorTandetnik 我初始化了它并出现了相同的数字。不知道发生了什么