#include
int main()
{
char ch1,ch2;
getchar("%c",ch1);//ch1=getchar();
ch2=(ch1-'a'+4)%26+'a';
printf("%c\n",ch2);
return 0;
}
第一个输入g,输出J。
第二个输入g, 输出k。
为什么会不一样,第一个的运算方式是怎样的
getchar()没有输入参数只有返回值,"%c",&ch1这种写法是在scanf中才会出现的,你代码能编译通过有点诡异。你是不是用的scanf("%c",ch1);这种情况有可能编译通过,但是,ch1前面漏写了&,会导致读取错误,ch1不会正确读取你输入的字符,而且,ch1声明的时候也没有初始化,它就是一个随机值,用随机值去计算的话,ch2的值就不确定了,出现什么都是由可能的。
在读取单个字符的时候,用scanf("%c",&ch1)和ch1=getchar()这两种写法是一样的。
哪来的getchar("%c",ch1)函数啊?getchar()函数没有参数啊?
只有scanf("%c",&ch1)这种写法