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

Очень странная ошибка: Функция gets() вызывается только со второго раза - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ степень двойки http://www.cyberforum.ru/cpp-beginners/thread358675.html
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе. int a,b=1; cin>>a; for(;;) { b=b*2; if(b==a) { cout<<"yes" ;
C++ Операторы С ++ А вот эту задачу пожалуйста, тоже в С ++)) Здание: Дан порядковый номер дня месяца, вывести на экран количество дней оставшихся до конца месяца. http://www.cyberforum.ru/cpp-beginners/thread358673.html
C++ Привет всем кто нибудь подкинет код программ на С++?
Просто начал осваивать даже не зная ни одного кода ну калькулятор то я написал через Dev-C++ а вот другое что нибудь я не пойму как создать и что вводить кто не жадный и может поделится чем нибудь интересным?И проблема с русскими символами смотрел тему http://www.cyberforum.ru/cpp-beginners/thread10662.html Все перечитал не помогло вообще, и так вот спасибо заранее кто откликнется.
Функции, решени задач) C++
Напишите пожалуйста программу)) Задание: Разработать функцию min(a,b) для нахождения минимального из двух чисел. Вычислить с помощью нее минимальное значение из четырёх чисел x,y, z, v. (В програмном языке С ++))
C++ полное скрытие проги в диспетчере задач http://www.cyberforum.ru/cpp-beginners/thread358658.html
я пишу троян (В СЛЕДОВАТЕЛЬСКИХ ЦЕЛЯХ И РАСПРОСТРАНЯТЬ НЕ СОБИРАЮСЬ!!!!!!!!!) создаю прогу на mvc 6 как window application если не создавать окно прога отображается в диспетчере задач как процесс кто знает можно ли её программно в обще скрыть или надо в диспетчере задач удалять её строку(если можно то как)
C++ обратный enum привет есть enum color {q,w,r,t,w,e,y,q}; как вернуть название (q,w,..) по номеру типа color c; cout<<c(3) //вывод "r" третий элемент подробнее

Показать сообщение отдельно
[Федя]
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
30.09.2011, 18:24     Очень странная ошибка: Функция gets() вызывается только со второго раза
Нужно написать класс, в объект которого (в массив строк) вводятся несколько фамилий
Для записи использую функцию gets()
Проблема в том, что вызывается эта функция только со второго раза.

Вот неработающий вариант программы, если же освободить от комментария второй вызов функции gets, все начинает работать.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <string.h>
 
#include <iostream>
using namespace std;
 
#define MAX 30
 
class StudGroup
{
    char Name[MAX][40]; 
public:
    void Create();  
    StudGroup();
};
 
StudGroup::StudGroup()
{
    for (int i=0; i < MAX; i++)
        Name[i][0] = '\0';
 
}
 
void StudGroup::Create()
{
    int i=0;
    for ( ; i < MAX; i++)
    {
        if (Name[i][0] == '\0')
        {
            printf ("[ID=%d]: \n", i);
            
            printf ("ФИО: ");
            gets(Name[i]);
            //  gets(Name[i]); Без этой строчки программа не работает. 
 
            return;
        }       
    }
}
 
int main ()
{
    setlocale (LC_ALL, "Russian");
    
    StudGroup Group1;
    
    printf ("0. Создать запись о студенте\n");
    
    int s=1, ID;
    
    while(1)
    {   
        printf ("Введите номер пункта меню >: ");
        scanf ("%d", &s);
        switch (s)
        {           
            case 0: Group1.Create(); break;                 
            default: return 0;
        }
    }
}
Я не могу понять что это за магия, надеюсь, кто нибудь поможет разобраться.
P.S. Я оставил только проблемное место, настоящая программа куда больше, не ругайтесь на switch
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru