Christopher. 发表于 2020-8-7 17:30:24

一个基础问题,求各位大佬解答

各位大佬想问一个问题:
#include<stdio.h>
int main()
{
        int n, i;
        printf("请输入字符的个数:");
        scanf("%d",&n);
        char a;
        getchar();
        printf("请开始输入字符:");
        for(i=0;i<n;i++){
                scanf("%c",&a);
        }
        a='\0';
        printf("你输入的字符是:%s\n",a);
        return 0;
}
这段代码getchar()用来读取输入的那个回车,为什么不能在scanf里面直接加上呢,像这样scanf("%d\n",&n),这样运行之后不能正常运行,求各位大佬解答,谢谢啦

sunrise085 发表于 2020-8-7 17:38:41

scanf("%d\n",&n);
scanf中最后添加一个 '\n' ,不是表示接受一个回车符,而是表示忽略所有的空白字符。这样的结果就是需要输入非空字符之后才表示结束这次输入,会把这次的输入赋值给相应的变量。非空字符是除了空格、tab、回车等以外的字符

注意:scanf引号内一般只放格式化字符,不要放其他无关字符,很容易出错的

Christopher. 发表于 2020-8-7 17:49:46

sunrise085 发表于 2020-8-7 17:38
scanf("%d\n",&n);
scanf中最后添加一个 '\n' ,不是表示接受一个回车符,而是表示忽略所有的空白字符。这 ...

谢谢大佬啦。那大佬格式化字符指的是什么,刚才去查没有查到

zltzlt 发表于 2020-8-7 17:52:28

Christopher. 发表于 2020-8-7 17:49
谢谢大佬啦。那大佬格式化字符指的是什么,刚才去查没有查到

就是 %d、%f 这类

sunrise085 发表于 2020-8-7 18:33:46

Christopher. 发表于 2020-8-7 17:49
谢谢大佬啦。那大佬格式化字符指的是什么,刚才去查没有查到

四楼说的对
格式化字符就是%d、%f、%c、%s等等

Christopher. 发表于 2020-8-7 18:42:12

zltzlt 发表于 2020-8-7 17:52
就是 %d、%f 这类

好的,谢谢啦

Christopher. 发表于 2020-8-7 18:42:45

sunrise085 发表于 2020-8-7 18:33
四楼说的对
格式化字符就是%d、%f、%c、%s等等

谢谢啦

sunrise085 发表于 2020-8-7 18:57:50

Christopher. 发表于 2020-8-7 18:42
谢谢啦

不用谢。
给评个最佳就行了
页: [1]
查看完整版本: 一个基础问题,求各位大佬解答