В настоящее время я работаю над некоторым кодом, и я знаю, что с ним что-то не так. Мой код предлагает пользователю ввести имя и сохраняет его в виде строки, используя fgets () or sscanf ()
. Если пользователь вводит что-то неправильно (то есть числа или буквенно-цифровые регистры), он должен вывести сообщение об ошибке и запросить ввод снова, пока пользователь не введет правильный ввод. Также я инициализировал:
char name [47];
printf ( "Name: " );
//some code dealing with newline character with the use of fgets
if ( (sscanf (name, %s, name)) == 1 )
//some code dealing with this condition
else {
do {
printf ( "ERROR: Invalid name. Name should consist of letters only.\n" );
printf ( "Name: " );
if (fgets ( name, sizeof (name), stdin ) == '\0' )
//some code dealing with EOF
} while ((sscanf (name, %s, name)) != 1);
}
Кто-нибудь может сказать мне, что случилось?
%s
. - person Barmar   schedule 27.08.2013