Помощь - Поиск - Пользователи - Календарь
Полная версия: Переход на "новую строку" во входном потоке
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
sheka
Как организовать переход на "новую строку" в файле (во входном потоке) при считывании.
Если использовать istream& ignore ( streamsize n = 1, int delim = EOF ), то первой переменной автоматически обрезается(не важно на сколько, сам факт) размер входной строки.
IUnknown
Другого способа просто нет. Nicolai M. Josuttis (автор "The C++ Standard Library: A Tutorial and Reference") предлагает определить вот такой манипулятор ignoreLine, который будет пропускать символы до конца строки:

#include <iostream>
#include <fstream>
#include <limits>

using namespace std;

template <class charT, class traits>
inline std::basic_istream<charT,traits>&
ignoreLine (std::basic_istream<charT,traits>& strm)
{
strm.ignore(std::numeric_limits<int>::max(),strm.widen('\n'));
return strm;
}

// использовать - так:
int main()
{
ifstream ifs ("/home/volvo/test.txt" , ifstream::in);
int n;

ifs >> n;
cout << n << endl;
ifs >> ignoreLine;
ifs >> n;
cout << n << endl;
ifs.close();

return 0;
}


Как видишь, в итоге все сводится к тому же ignore...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.