小文还在睡 发表于 2022-5-4 19:25:07

c语言基础

#include <stdio.h>

void main()
{

   char a,b;
   printf ("Input character a,b\n");
   scanf("%c%c\n",&a,&b);
   printf("%c%c\n",a,b);
/*为什么在输出的时候明明是给了两个变量的地址,
*书写两个变量就应该输出来的为什么写了两个之后回车没有进行下一步
*而是必须在输入至少一个字符才能进行下一步的回车
*1,写连续的字符as的话回车需要添加字符才能进行下一步
*2,写带空格的a s回车得到的只有a后面应该也有一个空格
*3,写一个字符回车一次得到的结果只有一个字符
*/



}

ba21 发表于 2022-5-4 19:31:32

scanf("%c%c\n",&a,&b); 没有这种写法scanf("%c%c",&a,&b);

"a s" 3个字符,空格也是字符

临时号 发表于 2022-5-5 01:17:51

1.scanf("%c%c\n",&a,&b);
第一个%c是第一个字符,第二个%c是第二个字符,当你输完回车时,这个回车被编译器默认为分隔符,这与其格式不匹配,所以继续要求你输入数据
所以代码需改为scanf("%c%c",&a,&b);
2.a,b为char类型,只能储存1个字符,所以a读到了a,b读到了一个空格,而s被舍弃掉了
所以输出是a
3.b其实读到了你的回车

月下孤井 发表于 2022-5-19 13:38:17

去掉scanf里的\n
页: [1]
查看完整版本: c语言基础