Люди, не подскажите, как из под доса, при считывании из файла информации определить где есть пробел, а где переход на след. строку? Т.е. если при обычном вооде с клавиатуры можно отключить resetiosflags(ios::skipws); и он будет понимать и пробелы и ентеры, а как бы это сделать при считывании из файла? Можно циклом после каждого слова пробел или переход вставлять, но вот как определить где что? Вопрос думаю понятен, очень прошу не игнорировать и ответить!
Здравствуйте, SLashrulez, Вы писали:
Можно так: сначала читаем строку целиком, потом разбираем ее на слова, если нужно:
string s;
ifstream fin("1.txt");
while (getline(fin, s)) // читаем по строкам
{
istringstream iss(s);
string s2;
while (iss >> s2) // читаем прочитанную строку по словам
...
}
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, Михаил Можаев, Вы писали:
ММ>Здравствуйте, SLashrulez, Вы писали:
ММ>Можно так: сначала читаем строку целиком, потом разбираем ее на слова, если нужно:
ММ>ММ>string s;
ММ>ifstream fin("1.txt");
ММ>while (getline(fin, s)) // читаем по строкам
ММ>{
ММ> istringstream iss(s);
ММ> string s2;
ММ> while (iss >> s2) // читаем прочитанную строку по словам
ММ> ...
ММ>}
ММ>
А можно ли так же лаконично прочитать построчно но не из файла, а из строки?
Здравствуйте, Sashenka, Вы писали:
S>А можно ли так же лаконично прочитать построчно но не из файла, а из строки?
Канэшна!
У нас будут 2 потока: один — исходная много
строчная 
строка, а второй — однострочная.
string sMultiline;
istringstream issMultiline (sMultiline);
for(string sLine; issMultiline.getline(sLine); )
{
istringstream issLine (sLine);
// чтение известных данных
int x; double y; string z;
issLine >> x >> y >> z;
// ну или то, что там тебе надо.
}