📅  最后修改于: 2023-12-03 15:13:47.533000             🧑  作者: Mango
在C语言中,我们可以使用 scanf()
函数来读取用户的输入。但是,如果用户在输入某些字符时出现了错误,那么程序就会陷入死循环。为了解决这个问题,我们可以使用 getchar()
函数来读取字符。
问题
使用 getchar()
函数来读取用户输入,直到输入的字符为回车符(\n
)为止。然后将用户输入的所有字符打印出来。
示例输出
Please enter a string: Hello, world!
You entered: Hello, world!
解析
以下是解决这个问题的步骤:
c
,用于存储用户输入的字符。getchar()
函数来读取用户输入的字符,直到读取到回车符。input
中,直到读取到回车符为止。以下是完整的解决方案:
#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()
等函数。