Как организовать переход на "новую строку" в файле (во входном потоке) при считывании. Если использовать istream& ignore ( streamsize n = 1, int delim = EOF ), то первой переменной автоматически обрезается(не важно на сколько, сам факт) размер входной строки.
IUnknown
13.09.2011 21:51
Другого способа просто нет. Nicolai M. Josuttis (автор "The C++ Standard Library: A Tutorial and Reference") предлагает определить вот такой манипулятор ignoreLine, который будет пропускать символы до конца строки:
#include <iostream>#include <fstream>#include <limits>usingnamespacestd;
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();
return0;
}
Как видишь, в итоге все сводится к тому же ignore...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.