C编程: How to make program end when user inputs a newline

标签 c string input

我正在构建一个基本的 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/

相关文章:

c - #if#endif 预处理指令,PortAudio

Java Regex - 在字符串中查找特定字符串

html - 光标和输出没有相同的颜色 css

c# - 在 C++ 中创建原始文本字符串,类似于 C#'s "@string"

string - 为什么我得到的字符串长度值不正确?

javascript - 这里应该使用 'form',还是没有必要?

tensorflow - TensorFlow中的feature_column.embedding_column和keras.layers.Embedding之间的区别

c - 竞争条件场景

c - 如何在 makefile 中组织大量 header 包含路径?

C:从调用中替换表