Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Зарание спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание строки до знака '\n' (C++):

Удаление знака из конца строки. - C++
Здравствуйте, требуется ваша помощь. Есть программа, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с...

Считать с файла строку типа char до знака окончания строки - C++
Всем доброго времени суток. Мне нужно считать с файла строку типа char до знака окончания строки ( '\0'). Как мне это сделать? Я...

считывание строки - C++
ввело в ступор... как считать строку без применения стринга..ну т.е.: char a; cin >> a; как мне теперь считать строку...какой...

считывание строки. С++ - C++
Строка считывается посимвольно буквами. а надо, чтобы словами.. как это сделать? FILE *fp2 = fopen("V.txt", "rb"); //открываем файл...

Считывание строки - C++
В общем появилась у меня недавно необходимость чужой код из консоли перевести в форму. Все функции подключил к контролам но 1 строку кода...

Считывание строки из файла. - C++
Появилась проблема. Строка из файла считывается, но не реагирует на пробелы. И не находит конец строки. #include <fstream> ...

8
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
20.03.2014, 23:32 #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();
}
что вводишь - то и выводит
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.03.2014, 23:41 #3
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Я пользуюсь функцией gets() и getline().
И где можно увидеть, как пользуетесь?
1
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
20.03.2014, 23:59 #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);
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 00:08 #5
Цитата Сообщение от kiborgdelto Посмотреть сообщение
getline() после считывания оставляет в потоке символ \n
Кто вам такое сказал?
2
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
21.03.2014, 00:12 #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, видно я всё таки не прав
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 07:37 #7
Цитата Сообщение от kiborgdelto Посмотреть сообщение
просто встречался с таким при использовании getline и приходилось удалять этот символ иначе считывал пустую строку вместо того что нужно было
Всё наоборот. Оставляет не getline(), а cin >>, и как раз перед getline() его нужно убирать, иначе считает пустую строку.

Добавлено через 7 часов 17 минут
http://www.cplusplus.com/reference/istream/istream/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.
1
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
21.03.2014, 18:55  [ТС] #8
Цитата Сообщение от kiborgdelto Посмотреть сообщение
cin.ignore(1);// удаляем из потока считанные символы
Спасибо большое!!!!!!!! Вставил в код и начало читать.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 20:12 #9
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Вставил в код и начало читать.
Код можно увидеть?
0
21.03.2014, 20:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 20:12
Привет! Вот еще темы с ответами:

Некорректное считывание строки - C++
Доброго времени суток. Подскажите, пожалуйста, с чем связана данная проблема: есть текст в файле, вот такой: &quot;Microsoft MS, MS-DOS,...

Считывание пустой строки - C++
Доброго времени! Из Прата еcть такая задача: Следующее упражнение позволит попрактиковаться в написании функций, работающих с...

Считывание строки из Edit - C++
Вот кусок программы, int K=2; int Lenght; char tmp; string s0; s0=Edit1-&gt;Text.c_str(); Lenght=s0.Length(); if...

Считывание строки на русском - C++
Поставил себе задачу - написать игру &quot;камень, ножницы, бумага&quot;. Столкнулся с проблемой: если вводить в консоль русскими буквами &quot;камень&quot;,...


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

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

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