我正在构建一个基本的 C 程序,它不断要求用户输入字符串并打印出输入的输入。当用户输入空行时,程序应该退出。但是,在我的以下程序中,即使我有一个条件来检查用户是否输入了空行,程序仍然会继续运行,直到用户键入输入。下面是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char userString[100];
while (1 == 1) {
scanf("%s", userString);
printf("USER ENTERED %s\n", userString);
if (userString[0] == '\n') {
exit(0);
}
}
}
最佳答案
scanf("%s", userString); scanf("%s", userString);
scanf
与 %s
将读取输入流,直到遇到任何空格。因此,换行符不会作为 userString
的一部分包含在内。
改用fgets
。
fgets(userString, sizeof userString, stdin);
关于C编程: How to make program end when user inputs a newline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58445193/