У меня есть переменная
ifstream inFile("stuff.txt");
в файле stuff.txt полная отправка:
The quick brown fox jumps over the lazy dog
Как мне поместить его в массив символов со всеми пробелами?
char text[250];
inFile >> text;
доставит меня в первый космос, больше ничего.
использование ifstream::getline()
читать в char
массив или использование std::getline()
читать в std::string
, Когда вы используете inFile >> text
Пробел будет действовать как разделитель, поэтому он останавливается на первом пробеле.
С помощью std::getline()
читать в std::string
убирает требование для указания максимального количества символов для чтения. Это устраняет возможность переполнения буфера и позволяет избежать дополнительной сложности, связанной с частично прочитанными строками (если строка была > 250
в этом случае например).
Всегда проверяйте результат операций ввода-вывода немедленно:
std::ifstream inFile("stuff.txt");
if (inFile.is_open())
{
std::string line;
if (std::getline(inFile, line))
{
// Use 'line'.
}
}
while (!inFile.eof()) {
inFile >> text;
}