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

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

Восстановить пароль Регистрация
 
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
20.03.2014, 23:21     Считывание строки до знака '\n' #1
Я пользуюсь функцией gets() и getline(). В обеих случаях читает только к первому пробелу. А вторая функция если даже задать что считывать к '\n' то он тоже читает к первому пробелу.
Помогите!!!!!

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

Зарание спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 23:21     Считывание строки до знака '\n'
Посмотрите здесь:

C++ Считывание строки из файла
C++ считывание строки
C++ считывание строки. С++
C++ Удаление знака из конца строки.
считывание строки с файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
saden
 Аватар для 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
5282 / 4801 / 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
5282 / 4801 / 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
5282 / 4801 / 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++ Считать с файла строку типа char до знака окончания строки
C++ Считывание строки из файла
Считывание строки C++

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

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

Текущее время: 09:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru