Не получается ввести строку с пробелом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

почему не могу ввести строку с пробелом
typedef struct worker 
{
    char *name;       
    char *pos;          
    char *year;         
    char *month;     
    int id;
} worker;
int main()
{
    setlocale(LC_ALL, "Rus");
    
    worker *people = NULL;
    char buf[64], swap[32], next;
    int i, j, n=0, road, vibor=1;
    
    printf("\n 1] Созд  [2] Смотр  [3] Сорт  [4] Возр/убыв  [5] Поиск  [0] Выход\n");
    
    while(1)
        {
            if ( kbhit() )
            {
                if ( getch() == 49 )
                {
                    printf("К-лово : ");
                    scanf("%d", &n);
                    
                    if(n > 0) 
                    {
                        people = (worker*) malloc(n * sizeof(worker));
    
                        for(i=0; i\n",i); 
                            people[i].id = i;
            
                            printf("ФИО : ",i); 
                            scanf("%63s",buf);
                            people[i].name = (char*) malloc(strlen(buf) + 1);
                            strcpy(people[i].name, buf);
                            
                            printf("POS : ");
                            scanf("%63s", buf);
                            people[i].pos = (char*) malloc(strlen(buf) + 1);
                            strcpy(people[i].pos, buf);
        
                            printf("YEAR : ",i); 
                            scanf("%63s",buf);
                            people[i].year = (char*) malloc(strlen(buf) + 1);
                            strcpy(people[i].year, buf);
        
                            printf("MONTH : ");
                            scanf("%63s", buf);
                            people[i].month = (char*) malloc(strlen(buf) + 1);
                            strcpy(people[i].month, buf);
                            
                        }
                    } else printf("создайте таблицу  [1]\n");
                }

Решение задачи: «Не получается ввести строку с пробелом»

textual
Листинг программы
char str[20];
fgets(str, 20, stdin);

Объяснение кода листинга программы

  1. Объявлена переменная типа char массив str с размером 20 символов.
  2. Функция fgets() используется для чтения строки из стандартного ввода (stdin).
  3. В качестве первого аргумента функции передается адрес нашего массива str.
  4. В качестве второго аргумента функции передается размер массива (20).
  5. Третий аргумент функции указывает, откуда следует читать данные (stdin).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы