Getline and ifstream?
Getline and ifstream?
我在共轭中的ifstream和getline遇到了问题。我有一个文本文档:
1020123456
Madison Williams
90
88
79
86
90
并希望将名称分配给学生是struct
类型学生的students[0].name
。我试过使用
inFile >> students[0].id;
getline(inFile, students[0].name);
"cout << students[0].id"
正确生成 ID,但 .name 不执行任何操作。
我在这里做错了什么?
"inFile.getline(students[0].name)"
会产生错误。
在你的数字后面有一个'n'
字符。当你inFile >> students[0].id;
时,你读到数字,但停在'n'
字符上。然后,当您getline()
时,流中还剩下该'n'
字符,因此它会读取一个空字符串,跳过'n'
,然后移动到下一行(这是您的名字所在的地方)。
您需要在读取号码后和呼叫getline()
之前跳过'n'
。调用
inFile.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
将忽略inFile
中剩余的内容,直到它遇到'n'
字符。因此,请将其更改为:
inFile >> students[0].id;
inFile.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
getline(inFile, students[0].name);
// continue as normal...
相关文章:
- ifstream什么都没读
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- ifstream文件在从行中读取时被清除
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- std::ifstream::read 不会读取所有 512 字节,并设置 EOF 和失败位
- Gurobi GRBModel and GRBmodel in C++
- 将 ifstream 拆分为 n 个流?
- 如何将 std::ifstream 转换为 std::basic_istream<CharT, Traits>&?
- C++ ifstream and getline
- Using ifstream, ofstream and fstream
- Getline and ifstream?
- C++ ifstream failbit and badbit
- Ifstream and Ofstream problems
- ifstream istream and >> overload
- C++ ifstream::read() and C arrays