Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
#1

Считывание строки до знака '\n' - C++

20.03.2014, 23:21. Просмотров 397. Ответов 8
Метки нет (Все метки)

Я пользуюсь функцией gets() и getline(). В обеих случаях читает только к первому пробелу. А вторая функция если даже задать что считывать к '\n' то он тоже читает к первому пробелу.
Помогите!!!!!

Как пример нужно поочередно прочитать две строки (то есть сначала 1 и проделать некоторые действия, а далее 2 и тоже проделать некоторые действия):
Hello, world!
Good Bye.

Зарание спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
20.03.2014, 23:32     Считывание строки до знака '\n' #2
только что попробовал
C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <conio.h>
main()
{
char str[100];
gets(str);
puts(str);
return getch();
}
что вводишь - то и выводит
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.03.2014, 23:41     Считывание строки до знака '\n' #3
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Я пользуюсь функцией gets() и getline().
И где можно увидеть, как пользуетесь?
kiborgdelto
70 / 72 / 27
Регистрация: 23.03.2011
Сообщений: 141
20.03.2014, 23:59     Считывание строки до знака '\n' #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
getline() после считывания оставляет в потоке символ \n, и при следующей попытки считывания считывает именно его, чтобы этого избежать нужно удалить этот символ из потока

C++
1
2
cin.getline(&func[0],1100);
cin.ignore(1);// удаляем из потока считанные символы
также можно считать этот символ функцией посимвольного считывания
cin.get();

C++
1
2
3
cin.getline(&N[0],100);
cin.get();
cin.getline(&N1[0],100);
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 00:08     Считывание строки до знака '\n' #5
Цитата Сообщение от kiborgdelto Посмотреть сообщение
getline() после считывания оставляет в потоке символ \n
Кто вам такое сказал?
kiborgdelto
70 / 72 / 27
Регистрация: 23.03.2011
Сообщений: 141
21.03.2014, 00:12     Считывание строки до знака '\n' #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от alsav22 Посмотреть сообщение
Кто вам такое сказал?
может и не оставляет, не буду спорить, просто встречался с таким при использовании getline и приходилось удалять этот символ иначе считывал пустую строку вместо того что нужно было

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
 
void main()
{
    char N[1000],N1[1000];
    cout<<"vvedite stroki\n";
    cin.getline(&N[0],100);
    cin.getline(&N1[0],100);
    cout<<endl;
    printf("%s",&N);
    cout<<endl;
    printf("%s",&N1);
    cout<<endl;
    system("pause");
}
этот код корректно считывает 2 строки и не реагирует на\n, видно я всё таки не прав
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 07:37     Считывание строки до знака '\n' #7
Цитата Сообщение от kiborgdelto Посмотреть сообщение
просто встречался с таким при использовании getline и приходилось удалять этот символ иначе считывал пустую строку вместо того что нужно было
Всё наоборот. Оставляет не getline(), а cin >>, и как раз перед getline() его нужно убирать, иначе считает пустую строку.

Добавлено через 7 часов 17 минут
http://www.cplusplus.com/reference/i...tream/getline/
The delimiting character is the newline character ('\n') for the first form, and delim for the second: when found in the input sequence, it is extracted from the input sequence, but discarded and not written to s.
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
21.03.2014, 18:55  [ТС]     Считывание строки до знака '\n' #8
Цитата Сообщение от kiborgdelto Посмотреть сообщение
cin.ignore(1);// удаляем из потока считанные символы
Спасибо большое!!!!!!!! Вставил в код и начало читать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 20:12     Считывание строки до знака '\n'
Еще ссылки по теме:

Считывание строки C++
Некорректное считывание строки C++
C++ Считывание пустой строки
C++ Считывание строки из файла
C++ Считывание строки getline

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

Или воспользуйтесь поиском по форуму:
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 20:12     Считывание строки до знака '\n' #9
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Вставил в код и начало читать.
Код можно увидеть?
Yandex
Объявления
21.03.2014, 20:12     Считывание строки до знака '\n'
Ответ Создать тему
Опции темы

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