![]() |
проблемы с getline
В програме немогу считать гетлайном строку, просто пропускается этот оператор и все.
Я сижу уже весь дерганый %( вот код, весь Код:
#include <iostream> |
а зачем getline? можно же fstream'омвским оператором >> пользоваться
|
Код:
cin >> strlineMatrix; |
Цитата:
--------------- вся проблема в том что getline неработает корректно если перед ним уже читалась чтрока через cin>> Вот пример, можете проверить Код:
#include <iostream>а как если без этого ? |
Перед вызовом
Код:
getline()Код:
cin.sync() |
а разве не должно быть cin.getline()?
И вопше, если ты на С++ то просто делай не char а string. |
cin.getline как раз таки юзают при использовании хедера string.h(Си) то бишь массив чаров , а у него тут переменная как стринг объявлена , Roston, думаю ты прав насчет того что нужно использовать эту функцию, но тогда и использовать надо char.
|
ТС... выдели кусок кода где именно не читается... и вопше просто попробуй читать строку в отдельной програме,а когда найдеш выход то сунь ее в свою.
Если ты например делаеш так Код:
char text[100]; |
Вообще-то после
cin >> str; считывание остается на той же строке, поэтому для получения следующей строки необходимо считать из потока символ '\n' (перейти к следующей строке) оператором getline(cin,str); а уже потом считывать нужную строку тем же оператором То есть просто добавь после cin >> оператор getline() или (что не рекомендую из-за более плохой читабельности кода) перед нужным getline добавь дополнительный getline(cin,str) |
Считывайте всё в строку, а потом её разбирайте(можно её даже запихать в sstream). Проблем и багов будет в 100 раз меньше
|
| Время: 08:27 |