|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2011, 07:21 | #1 |
Новичок
Джуниор
Регистрация: 02.05.2011
Сообщений: 5
|
Считать n строк
Приветствую. Такая проблема: нужно считать н строк подряд(строки с пробелами). Тк строки с пробелами я так понимаю cin не подойдет.
Пробовал getlineом но у меня почему-то одна строка считывается а дальше даже символы не печатает.Препод сказал что это из-за какой-то хрени с переносом строки кажется.Вобщем он дописал вызов процедуры и все заработало. Но это какой-то бородатый метод, тем более он так и не объяснил почему заработало. Вобщем мне нужен универсальный метод считывания строк с пробелами. Проблема возникла при написании С4 из ЕГЭ, программу написал а считывание не работает. Спасибо. |
02.05.2011, 07:23 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Приложение консольное?
Если Да, тогда так: if(S[i] == '\n' || S[i] == '\h' || S[i] == '\0') k++;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 02.05.2011 в 07:32. |
02.05.2011, 08:16 | #3 |
Новичок
Джуниор
Регистрация: 02.05.2011
Сообщений: 5
|
Что такое k?
Я если честно ничего не понял, ну проверяем мы каждый символ на конец строки и еще на неизвестный мне '\h'. И что дальше? К какой строке мы обращаемся тоже не ясно, тк у меня не получатеся именно считать. Наверно я зря написал про перенос строки (: У меня не получается считать несколько строк. Выглядеть это должно примерно так. string str; for (i = 0; i < n; ++i){ //считываем в str //нахожу в строке то что нужно } Вот именно считывание я и не знаю как сделать. И да, приложение консольное. |
02.05.2011, 11:58 | #4 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
SHoooo
Цитата:
Код:
|
|
02.05.2011, 13:03 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Думаю, в качестве примера вам будет полезен следующий код, который взят без изменения из книги Кернигана и Ритчи. Я только добавил "getchar();" для задержки и просмотра результата работы программы. И ещё я комментарии по-другому расположил.
Чтобы ввести EOF (End of File) в терминал Windows, нужно нажать "Ctrl+Z+<Enter>". Код:
Последний раз редактировалось 8Observer8; 02.05.2011 в 13:05. Причина: Выравнивание. |
02.05.2011, 15:21 | #6 | |
Новичок
Джуниор
Регистрация: 02.05.2011
Сообщений: 5
|
Цитата:
Почему этот код работает некорректно? #include<iostream> #include<string> using namespace std; int main() { string a; int n; cin >> n; for (int i = 0; i < n; ++i){ getline(cin, a); } system("pause"); return 0; } Считывание происходит n-1 раз, на первой итерации getline не срабатывает. |
|
02.05.2011, 17:28 | #7 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
SHoooo
Цитата:
Код:
|
|
03.05.2011, 07:45 | #8 |
Новичок
Джуниор
Регистрация: 02.05.2011
Сообщений: 5
|
Что это?
cin.ignore(cin.rdbuf()->in_avail()); И это cout<<i<<" "<<"\""<<a<<"\""<<endl; Спасибо за ответы, но какой от них толк если я так и не понял в чем проблема, и почему предложенные вами варианты работают? Получается только трата моего и вашего времени (: |
03.05.2011, 14:54 | #9 | ||
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Цитата:
А rdbuf->in_avail() возвращает количество сиволов которые есть в потоке. Короче cin.ignore(cin.rdbuf()->in_avail()) очищает поток cin. Цитата:
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать автозаполнение строк, которые зависят от строк другого столбца | путвфда_иил | Microsoft Office Excel | 19 | 29.08.2010 17:16 |
перенос строк удаление ненужных строк | HelperAwM | Microsoft Office Excel | 5 | 26.06.2010 18:42 |
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк | Centurion2xx6 | Microsoft Office Word | 9 | 30.03.2010 11:00 |
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку | Dimak24 | Помощь студентам | 1 | 19.12.2008 15:45 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |