📜  C |输入和输出|问题13(1)

📅  最后修改于: 2023-12-03 15:13:47.533000             🧑  作者: Mango

C | 输入和输出 | 问题13

在C语言中,我们可以使用 scanf() 函数来读取用户的输入。但是,如果用户在输入某些字符时出现了错误,那么程序就会陷入死循环。为了解决这个问题,我们可以使用 getchar() 函数来读取字符。

问题

使用 getchar() 函数来读取用户输入,直到输入的字符为回车符(\n)为止。然后将用户输入的所有字符打印出来。

示例输出

Please enter a string: Hello, world!
You entered: Hello, world!

解析

以下是解决这个问题的步骤:

  1. 声明一个字符变量 c,用于存储用户输入的字符。
  2. 使用 getchar() 函数来读取用户输入的字符,直到读取到回车符。
  3. 每次读取一个字符就将它添加到一个字符串变量 input 中,直到读取到回车符为止。
  4. 最后打印出用户输入的所有字符。

以下是完整的解决方案:

#include <stdio.h>

int main() {
    char input[1000];
    printf("Please enter a string: ");

    char c = getchar();
    int index = 0;
    while (c != '\n') {
        input[index++] = c;
        c = getchar();
    }
    input[index] = '\0';

    printf("You entered: %s", input);
    return 0;
}

在上面的代码中,我们声明了一个 char 类型的数组 input,它用于存储用户输入的字符。我们首先打印出一个提示信息,要求用户输入一个字符串。

然后,我们使用 getchar() 函数来读取用户输入的每个字符,将其添加到 input 数组中。我们还使用一个变量 index 来记录已经读取了多少个字符。

当读取到回车符时,我们将其替换为一个空字符(\0),以便我们可以将其打印出来。最后,我们使用 printf() 函数来打印出用户输入的所有字符。

注意

在C语言中,如果要将用户输入的字符转换成数字、浮点数等其他类型的数据,我们可以使用标准库函数 atoi()atof()等函数。