Я пытаюсь взять вход на 2 строки с помощью функции gets()
(и я должен использовать эту функцию только)получает Function() не перестает воспринимать вводные
но когда я запускаю программу консоли просто продолжается во второй gets()
, даже не останавливаясь, чтобы получить первый вход.
Когда я отлаживаю, я не вижу ввода ввода в строку cityName
, ее просто проходит через нее.
Я также знаю, что есть проблема с буфером при обработке строк, есть ли способ «очистить» буфер, используя функции и gets()
?
#include <stdio.h>
#include <math.h>
#include <string.h>
void main() {
int z;
char cityName[50];
char Coordinates[50];
scanf("%d", &z);
printf("Please enter city name:\n");
gets(cityName);
printf("Please enter city coordinates\n");
gets(Coordinates);
}
Ive видел много вопросов об опасностях в получает() вещи, что это не мой призыв. Я должен использовать его и только его. – user3921
@ user3921 Ну, скажите тому, кто принял решение, что вы должны использовать 'gets()' опасность этого. Кроме того, он уже удален из стандартной библиотеки C в новейшем стандарте (C11). –
Я думаю, что мне удалось справиться с этим, я использую цикл while и использует getchar, пока не достигнут/n после каждого ввода. Кажется, он работает. Я знаю, что его глупое использование получает и ставит, но это мои инструкции, и я не хочу отказываться от класса из-за такого рода вещей. спасибо – user3921