Так вот мой код:Как проверить, вводит ли пользователь строковое значение?
main()
{
char *iochar;
printf(" Enter a standard line: ");
scanf ("%s", &iochar);
if (iochar != NULL)
{
printf(" Here's what you entered: %s ", &iochar);
}
else
{
printf(" Oops! Looks like you forgot to enter something! ");
}
}
Моя проблема заключается в том, что я могу сканировать запись пользователя и сохранить его, и если что-то существует, то он выдает правильное сообщение. Но если я просто нажму на возврат, чтобы проверить отсутствие ввода (null, empty и т. Д.), Программа не завершает работу и не выводит мое сообщение об ошибке. Он просто зависает, пока я ничего не введу.
Я программировал на Java в течение последних двух семестров, поэтому C полностью потерян для меня прямо сейчас. Поэтому любая помощь была бы высоко оценена.
, так что вы просто хотите проверить, является ли ввод строкой или нет? –
Не используйте 'scanf' (когда-либо). Используйте 'fgets', или, если у вас есть,' getline'. Затем «just hit return» будет вызывать строку '' \ n "', а команда typing control-D (которая заставляет условие EOF) будет вызывать строку '' ''. Кстати, пробелы на концах вашей второй и третьей строк 'printf' должны быть' \ n'. – zwol
@OusmaneDiaw На данный момент, да. Мой код должен делать другие вещи, но я должен уметь проверять, что на самом деле есть какой-то вход. – Polly