在 c++ 中逐行阅读字符串,不要以空格停止
Read String Line by line in c++ and dont stop by space
给定一个我自己编写的方法,给出了一个文本文件,我想将项目保存到vector<Object> referenceObject
中。它几乎可以工作,但是如果我进入我的文本文件对象,例如:" Book of light "
,它只是保存"Book"
,所以它会停止读取第一个空格。
我阅读了一些其他像我一样的StackOverflow问题,但对于我的问题,它们不起作用。
问:它返回我的文本文件的所有对象,除了我的第一个对象。所以我的列表从index=1
开始,而不是从index=0
开始。 为什么?
void openfile() {
ifstream inFile;
inFile.open("textfile");
if (inFile.fail()) {
cerr << "error open this file" << endl;
exit(1);
}
string item;
int count = 0;
vector<Object> referenceObject;
while (!inFile.eof()) {
while (getline(inFile, item)) {
inFile >> item;
Object s;
s.setName(item);
referenceCards.push_back(s);
std::cout << count << ' ' << referenceObject.at(count).getName() << endl;
count++;
}
}
当你这样做时:
while (getline(inFile, item)) { // reads line into item
inFile >> item; // overwrites item
// ... // do stuff with item
}
您正在阅读第一行,然后立即忽略它(通过用第一个字符串覆盖它,直到第二行的空格(。
相反,只需这样做:
while (getline(inFile, item)) { // read line into item
// ... // do stuff with item
}
此外,请避免此检查:
while (!inFile.eof())
请参阅为什么循环条件中的iostream::eof(即'while (!stream.eof((('(被认为是错误的?为什么建议反对它。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 移除前面有空格的前2个字符串
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 在字符串中插入空格
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 使用另一个字符串从字符串中删除空格
- 我还可以添加什么来按空格或空格正确拆分C++字符串?
- C++ "noskipws"没有按预期工作,如何正确允许字符串中的空格?
- 在 c++ 中逐行阅读字符串,不要以空格停止
- std::regex:匹配由数字和空格组成的字符串,并提取数字.如何?
- 如何存储包含多个空格的字符串 c++
- 在特定位置为字符串添加空格
- 有没有办法在 c++ 中获取带有空格的完整字符串?
- C++完全复制要字符串的字符列表,而不会忽略多个空格
- Winsock2:当我尝试发送带有空格的字符串时,该函数在遇到空格时似乎停止发送
- 从没有空格的字符串中提取整数
- 用于拆分空格字符串的程序不起作用
- 解析C++中的完整(从头到尾)字符串,包括所有空格
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 如何获取我的区域设置的空格字符串?