Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
_Kit_
1 / 1 / 0
Регистрация: 21.09.2015
Сообщений: 51
#1

После чтения числа считывается пустая строка

04.11.2016, 18:48. Просмотров 175. Ответов 2
Метки нет (Все метки)

Нужно считать ряд строк, что-то вроде такого вида:
аааа
бббб
сссс

и я попробовал реализовать это через fgets()

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
 
using namespace std;
 
main()
{
    int n, x=0;
    char s[3], c;
    
    cin >> n;
    for(int i=0;i<n;i++)
    {
        fgets(s, 3, stdin);
        cout << s;
    }
}
однако печалька, она считывает предыдущую строку, т.е. ту строку, где был введено число, и в результате в s запихивается символ перевода строки, как я понимаю. Попробовал считать отдельно этот символ сначала через cin, а затем применить fgets(), но опять неудача - cin не считывает этот символ, а переходит сразу на новую строку, в итоге я зашёл в тупик. Буду очень благодарен, если объясните, как всё-таки быть в этой ситуации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2016, 18:48
Ответы с готовыми решениями:

Не считывается строка из файла
Есть динамический массив символов (поле класса). При считывании из файла выдаёт ошибку &quot;CXX0030:...

Не считывается строка из строки
недавно делал класс тут в соседней теме, сегодня случайно заметил ошибку, а уже хотел сдавать,...

Первая строка считывается пустой
Программа должна считать определенное количество имен студентов в массив строк и потом вывести...

Каким образом после чтения из файла, узнать позицию для чтения следующего куска байт
Здравствуйте, задача такова есть файл, размером 1000 байт, нужно открыть его считать 100 байт,...

Пустая строка
Делал задание по перегрузке функций. Перегружаю функцию sum. В одном из заданий надо ее перегрузить...

2
zss
Модератор
Эксперт С++
7057 / 6603 / 4178
Регистрация: 18.12.2011
Сообщений: 17,400
Завершенные тесты: 1
04.11.2016, 19:00 #2
См.
Распространенные ошибки
C++
1
2
3
4
5
(cin >> n).get();
for(int i=0;i<n;i++)
    {
        cin.getline(s, 3);
...
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
04.11.2016, 19:02 #3
Цитата Сообщение от _Kit_ Посмотреть сообщение
Нужно считать ряд строк, что-то вроде такого вида:
аааа
бббб
сссс
Используйте getline().
http://en.cppreference.com/w/cpp/string/basic_string/getline
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2016, 19:02

Пустая строка в функции
Имеется такая функция: int setgolf (golf &amp; g) { std::cout &lt;&lt; &quot;Введите имя гольфиста: &quot;;...

Вводится пустая строка
Здравствуйте, при выполнении моего кода выходит исключение от функции substr (out_of_range)....

Читается пустая строка
Имеется код, при его компилировании программа игнорирует взятие строки у пользователя и заканчивает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru