Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Smart is the new Sexy
31 / 31 / 1
Регистрация: 29.12.2008
Сообщений: 109
1

Требуется подкорректировать программу

10.01.2009, 14:40. Показов 806. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
class phone_name {
    char name[20];
    long int phone;
public:
    void set_phone() { long int x; cin >> x; phone = x; }
    void set_name() { gets (name); }
    void show() { cout << name << " " << phone; }
};
 
void main() {
    phone_name *ob;
    ob = new phone_name;
    ob->set_phone();
    ob->set_name();
    ob->show();
}
Вопрос: Почему пропусукает и не выполняет функцию gets (name) ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2009, 14:40
Ответы с готовыми решениями:

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

Подкорректировать программу!
Ребят помогите пожалуйста! нужно немного изменить код! Вот начальный код: #include &lt;iostream&gt;...

Подкорректировать программу
Нужно было реализовать один из алгоритмов факторизации. Взял простой метод перебора возможных...

Помогите подкорректировать программу
Задание: Составить программу, которая содержит текущую информацию о заявках на авиабилеты. каждая...

2
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.01.2009, 15:32 2
Ты используешь перед этим такой вызов:
cin >> x;
что он делает? Грубо говоря, он считывает с потока строку, потом ее в int "превращает". Символ перехода на новую строку он оставляет в потоке. У тебя же не должен символ \n попасть в число? Вот следующим вызовом твоя gets и читает этот \n оставшийся в потоке, считая что ты ввел пустую строку. Это нормальное поведение, так и должно быть.
Вызывай два раза, чтобы избавится от этого. Желательно вызывать один раз сразу после ввода (чтобы в вызове функции сразу же убрать символ перехода из потока), чтобы не запутаться. Тогда после вызова гарантировано все будет работать, как ожидается при любом вызове.

Добавлено через 20 минут 22 секунды
Вот, посмотри здесь пример кода программы, в котором то же самое:
https://www.cyberforum.ru/cpp-... 89643.html
Просто использовано два вызова get. Один - чтобы снять с потока, что там осталось, а второй, чтобы ожидать нажатия от пользователя.
1
Smart is the new Sexy
31 / 31 / 1
Регистрация: 29.12.2008
Сообщений: 109
10.01.2009, 15:45  [ТС] 3
Спасибо большое, за полное объяснение. Все заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2009, 15:45

подкорректировать программу со строками
#include &lt;string&gt; #include &lt;iostream&gt; int main() { std::string vowel = &quot;AaEeIiOoUuYy&quot;; ...

Как можно упростить программу?(или подкорректировать)
(ссылка на задание) Вот мое решение : Код: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

подкорректировать программу
нужно сделать так что-бы А) поиск осуществлялся по всем комбобоксам и при вводе текстовое поле...

Нужно подкорректировать программу
задача вкратце звучит так: нужно поменять местами десятки и сотни(т.е. из 123 получим 213) мой...

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

Как подкорректировать программу?
Помогите подкорректировать код он должен выводить список пользователей(и информацию о них в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru