Не получается ввести строку с пробелом - 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);
Объяснение кода листинга программы
- Объявлена переменная типа char массив str с размером 20 символов.
- Функция fgets() используется для чтения строки из стандартного ввода (stdin).
- В качестве первого аргумента функции передается адрес нашего массива str.
- В качестве второго аргумента функции передается размер массива (20).
- Третий аргумент функции указывает, откуда следует читать данные (stdin).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д