Вот это вводит не всю строку, а ограничивает до первого пробела.
Код: Выделить всё
ifstream input_file("w12.cfg");
if(input_file)
{
input_file >> line;
cout << ":" << line << ":" << endl;
}Модератор: Модераторы разделов
Код: Выделить всё
ifstream input_file("w12.cfg");
if(input_file)
{
input_file >> line;
cout << ":" << line << ":" << endl;
}Гадость какая.math писал(а): ↑30.05.2010 20:24Код: Выделить всё
char buffer[256]; input_file.getline(buffer, 256); string line = buffer;
watashiwa_daredeska писал(а): ↑30.05.2010 20:28std::getline
noskipws
Гадость какая.math писал(а): ↑30.05.2010 20:24Код: Выделить всё
char buffer[256]; input_file.getline(buffer, 256); string line = buffer;
kt315e писал(а): ↑30.05.2010 20:53watashiwa_daredeska писал(а): ↑30.05.2010 20:28std::getline
noskipws
Гадость какая.math писал(а): ↑30.05.2010 20:24Код: Выделить всё
char buffer[256]; input_file.getline(buffer, 256); string line = buffer;
Спасибочки!!! Пробую.
P.S. getline - работает
Код: Выделить всё
std::string line;
std::getline(input_file,line);Это C++, просто функция низкоуровневая. Она имеет право на жизнь, ибо позволяет программе не умирать при чтении 10GB строки из файла, в отличие от std::getline :)
watashiwa_daredeska писал(а): ↑01.06.2010 11:19Это C++, просто функция низкоуровневая. Она имеет право на жизнь, ибо позволяет программе не умирать при чтении 10GB строки из файла, в отличие от std::getline
Как ввести целиком строку из файла в С++
SergiusTux писал(а): ↑01.06.2010 22:56watashiwa_daredeska писал(а): ↑01.06.2010 11:19Это C++, просто функция низкоуровневая. Она имеет право на жизнь, ибо позволяет программе не умирать при чтении 10GB строки из файла, в отличие от std::getline
Умно конечно, однако изначально вопрос поставлен былКак ввести целиком строку из файла в С++
Использование обозначенной низкоуровневой функции не решает задачу.
Зато решает задачу корректной обработки ситуации с разумным сообщением об ошибке, вместо забивания свопа и смерти от руки ООМ killer'а. std::getline могла бы решить эту проблему при наличии дополнительного параметра — максимального размера строки, но его нет, видимо решили, что раз переполнение буфера не грозит, то и не нужно.SergiusTux писал(а): ↑01.06.2010 22:56Использование обозначенной низкоуровневой функции не решает задачу.
Мы уже не код обсуждаем, а функции :)