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

cin.getline() не читает 1 символ - C++

Восстановить пароль Регистрация
 
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
03.04.2012, 23:25     cin.getline() не читает 1 символ #1
Доброго времени суток

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

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    system("cls");
 
    cout<<"Enter a file name that we decode"<<endl;
 
    char name[100];
 
    cin.ignore();
 
    cin.getline(name,100);
 
    cout<<"Enter some text"<<endl;
 
    char stext[4096];
 
    memset(stext,0,4096);
 
    cin.ignore();
 
    cin.getline(stext,4096);
под дебагером проверил содержимое stext и увидел что не хватает 1 символа, к примеру: вводим "Hello World" содержимое массива "ello World". Теперь вопрос: Как записать строку полностью?

П.С. Пытался манипулировать с игнором но как то пусто
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2012, 23:25     cin.getline() не читает 1 символ
Посмотрите здесь:

C++ cin.getline() не читает строку
getline(cin, str) и cin>> C++
C++ Отличие функции cin.get и cin.getline
cin.getline и cin.ignore C++
C++ Cin вместо cin.getline
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
04.04.2012, 00:03     cin.getline() не читает 1 символ #2
cin.ignore() вам зачем?

Добавлено через 57 секунд
istream& ignore ( streamsize n = 1, int delim = EOF );

Extract and discard characters
Extracts characters from the input sequence and discards them.

The extraction ends when n characters have been extracted and discarded or when the character delim is found, whichever comes first. In the latter case, the delim character itself is also extracted.
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
04.04.2012, 00:09  [ТС]     cin.getline() не читает 1 символ #3
ну вы попытайтесь ввести этот код без игнора
все ли данные будут введены?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.04.2012, 00:15     cin.getline() не читает 1 символ #4
Вместо cin.ignore() вызывайте cin.sync().
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
04.04.2012, 00:18  [ТС]     cin.getline() не читает 1 символ #5
Круто, а в чем разница?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.04.2012, 00:23     cin.getline() не читает 1 символ #6
sync сбрасывает все содержимое буфера.
Yandex
Объявления
04.04.2012, 00:23     cin.getline() не читает 1 символ
Ответ Создать тему
Опции темы

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