我有一个变量
ifstream inFile("stuff.txt");
在 stuff.txt 文件中有一个完整的句子:
The quick brown fox jumps over the lazy dog
如何将其放入包含所有空格的 char 数组中?
char text[250];
inFile >> text;
带我到第一个空间,没有别的。
用于ifstream::getline()
读入char
数组或用于std::getline()
读入std::string
. 当您使用inFile >> text
空格时,它将充当分隔符,这就是它停在第一个空格的原因。
使用std::getline()
to read into astd::string
消除了指定要读取的最大字符数的要求。这消除了缓冲区溢出的可能性,并避免了处理部分读取行的额外复杂性(> 250
例如,如果在这种情况下有一行)。
始终立即检查 IO 操作的结果:
std::ifstream inFile("stuff.txt");
if (inFile.is_open())
{
std::string line;
if (std::getline(inFile, line))
{
// Use 'line'.
}
}
while (!inFile.eof()) {
inFile >> text;
}