scanf("%s", input);
if (strlen(input) > 1) {
errorNet();
}
if (input[0] == '\n') {
errorNet();
}
if (input[0] == '\0') {
errorNet();
}
当我按Enter键时,scanf转到下一行并继续搜索输入。如何设置如果输入命中,则调用函数errorNet?
实施例。如果输入/空行,请调用errorNet函数。
答案 0 :(得分:1)
如果您使用fgets
,请指定您正在阅读的字符串的大小。达到此尺寸或用户按下fgets
时,\n
将停止阅读输入。请注意,此大小会计算字符串末尾的\0
。
char input[10];
fgets(input, 10, stdin);
printf("%s\n", input);
要检测用户是否只是按了\n
而没有写任何内容,只需检查第一个字符是否为\n
,例如:
if (input[0] == '\n') {
printf("just '\\n'\n");
}