#include "stdio.h"
void main()
{
char ch;
scanf("%c",&ch);
while (ch!='\n')
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{
ch=ch+3;
if(ch>'Z'&&ch<'Z'+4||ch>'z')
ch=ch-26;
}
printf("%c ",ch);
scanf("%c",&ch);
}
}
如上程序是为了完成输入字符串的加密,将全部的字母都换成它的后面第三个字符,在输入时是一次性输入一串字符的,如:abc123,它的结果应该是def123;现在我不明白的是:scanf()函数只能一次接收一个字符串,那么我一次性输入的相当于是一个字符串,那计算机内部可能是以下的哪一种情况:1、我输入的字符先不进行运算,晢时存在一个非&ch的地方,如什么缓冲中,待我一次性全部输完,打击回车后,再开始运行程序,遇到scanf时再依次从晢存的地方将字符录入ch;2、在我输入过程中即开始运算,即当我输入完成a与将要输入b的间隙,计算机已开始运行,毕竟有了第一个字符,下面的程序已经能够进行运算了,这样,只要有一个字符输入,计算机马上开始工作,而在此过程中,printf()产生的结果则暂时存在一个暂存区,等待回车时一并输出到屏幕上。这两种运行情况倒底是哪一个呢?还是哪个都不是,还有别的解释?希望大侠们不吝惜赐教!谢谢!
开心每一天1111
吃鸡游戏