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

Не могу прочитать данные

24.02.2013, 21:43. Просмотров 305. Ответов 3
Метки нет (Все метки)

Здравствуйте. Не могу прочитать данные после второго ввода (после enter a phrase). Объясните пожалуйста что не так, а то недавно начал изучать язык и сам не могу разобраться. Вот программа.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
using namespace std;
void function();
 
int main ()
{
    function();
}
 
void function()
{
    
    cout<<"Hello."<<'\n';
    
    int number;
    cout<<"Enter a number:   ";
    cin>>number;
 
    cout<<"Enter a phrase < 20 simbols:  ";
    char phrase[20]={};
    cin.getline(phrase,20);
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 21:43
Ответы с готовыми решениями:

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

Прочитать данные из файла
Доброго времени суток! Помогите написать программку для чтения данных из...

Прочитать данные структуры из файла
Есть структура struct person { String name; String famil; String...

Как прочитать данные pdf
Как прочитать данные из файла pdf в программу какие есть для этого инструменты...

Как правильно прочитать данные?
Как правильно прочитать данные? &quot;ER-200&quot; 06:43 10:40 &quot;Red Arrow&quot; 23:55 07:55...

3
zss
Модератор
Эксперт С++
7480 / 6849 / 4324
Регистрация: 18.12.2011
Сообщений: 18,117
Завершенные тесты: 1
24.02.2013, 21:49 2
Этот нюанс уже много раз оговаривался.
После считывания чисел в буфере текущим кодом для
ввода остается знак конца строки.
cin.getline(phrase,20);
записывает в phrase как раз этот конец строки.
Простейший способ исправить - повторить ввод:
C++
1
2
3
char phrase[20];
cin.getline(phrase,19);
cin.getline(phrase,19);
0
wikikino
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 15
24.02.2013, 21:56  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
Этот нюанс уже много раз оговаривался.
После считывания чисел в буфере текущим кодом для
ввода остается знак конца строки.
cin.getline(phrase,20);
записывает в phrase как раз этот конец строки.
Простейший способ исправить - повторить ввод:
C++
1
2
3
char phrase[20];
cin.getline(phrase,19);
cin.getline(phrase,19);
про буфер я читал, но я не понимаю вот что, если я после ввода первого числа напишу вот это
int number2;
cout<<"Enter another number: ";
cin>>number2;

второе число вводится нормально. Знак концу строки первого числа не идет в number2, так как в number2 могут быть только числа. Как только появляется переменная типа char, знак окончания строки сразу же туда уходит. Я правильно все понимаю ?
0
zss
Модератор
Эксперт С++
7480 / 6849 / 4324
Регистрация: 18.12.2011
Сообщений: 18,117
Завершенные тесты: 1
24.02.2013, 22:37 4
Цитата Сообщение от wikikino Посмотреть сообщение
торое число вводится нормально
В этом случае знак конца строки пропускается и число читается нормально.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2013, 22:37

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

Не могу прочитать строку
Добрый день, никак не получается прочитать строку. В том месте, где...

Не могу прочитать код
добрый день имеется вот такой предзаголовочный файл #ifndef COLLISION_H...


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

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

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