【发布时间】:2012-10-27 16:56:46
【问题描述】:
string numbers;
string fileName = "text.txt";
ifstream inputFile;
inputFile.open(fileName.c_str(),ios_base::in);
inputFile >> numbers;
inputFile.close();
cout << numbers;
而我的 text.txt 文件是:
1 2 3 4 5
基本上是一组由制表符分隔的整数。
问题是程序只读取 text.txt 文件中的第一个整数,而由于某种原因忽略了其余的整数。如果我删除整数之间的制表符,它可以正常工作,但是它们之间有制表符,它将不起作用。这是什么原因造成的?据我所知,它应该忽略任何空白字符还是我弄错了?如果是这样,有没有更好的方法从文本文件中获取这些数字?
【问题讨论】:
-
它只忽略字符前的空格。如果要包含空格,请使用
std::getline。如果您希望它们作为数字,std::vector<int>(std::istream_iterator<int>(inputFile), std::istream_iterator<int>())就可以了。