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

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

Войти
Регистрация
Восстановить пароль
 
wikikino
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 15
#1

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

24.02.2013, 21:43. Просмотров 273. Ответов 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);
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 21:43     Не могу прочитать данные
Посмотрите здесь:

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

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

Как правильно прочитать данные? - C++
Как правильно прочитать данные? &quot;ER-200&quot; 06:43 10:40 &quot;Red Arrow&quot; 23:55 07:55 &quot;Express&quot; 23:59 08:00 &quot;Slow Train 1&quot; 10:00 09:59 ...

Как прочитать данные pdf - C++
Как прочитать данные из файла pdf в программу какие есть для этого инструменты С++?? Можете фрагмент кода привести??

Не могу прочитать строку - C++
Добрый день, никак не получается прочитать строку. В том месте, где закомментировано, нужно считать строку. Подскажите, как это правильно...

не могу прочитать из файлов - C++
Нужно открыть файл, считать из него имена других файлов и затем из этих файлов взять нужные данные. Из первого файла читает названия...

Не могу прочитать код - C++
добрый день имеется вот такой предзаголовочный файл #ifndef COLLISION_H #define COLLISION_H #include &quot;Shape.h&quot; ...

Прочитать данные из файла и построить график - C++
Программа, у которой не ясно, откуда ноги растут У меня есть программа, которая выдаёт данные в формате DAT. Там есть названия колонок...

Как на с++ прочитать данные из СОМ порта? - C++
Мне нужно под MS-DOS 6.22 прочитать несколько слов через СОМ порт (в пределах 2х десятков и потом эти слова проанализировать). Какое...

Не могу прочитать из файла в класс - C++
Доброго времени суток! Есть проблемка. У меня имеется класс Студент, в котором есть функция записи в файл(здесь все получилось отлично) и...

Не могу прочитать некоторые выражения - C++
Добрый день, подскажите пожалуйста что значат следующие выражения: double **a; // &lt;- что это? (а* - это указатель, а что две...

Не могу записать прочитать пробелы - C++
Доброго времени суток!) Только начал С++... Пишу программу, столкнулся с проблемой при чтении из файла.. А именно при чтении не считываются...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 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);
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, знак окончания строки сразу же туда уходит. Я правильно все понимаю ?
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
24.02.2013, 22:37     Не могу прочитать данные #4
Цитата Сообщение от wikikino Посмотреть сообщение
торое число вводится нормально
В этом случае знак конца строки пропускается и число читается нормально.
Yandex
Объявления
24.02.2013, 22:37     Не могу прочитать данные
Ответ Создать тему
Опции темы

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