C语言译密码问题
为什么输入完所有字符后才输出,而不是每输入一个字符就输出对应的一个字符?代码如下:#include<stdio.h>intmain(){charc;while((c=ge...
为什么输入完所有字符后才输出,而不是每输入一个字符就输出对应的一个字符?
代码如下:
#include<stdio.h>
int main()
{ char c;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{ c=c+4;
if((c>'Z'&&c<='Z'+4)||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
} 展开
代码如下:
#include<stdio.h>
int main()
{ char c;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{ c=c+4;
if((c>'Z'&&c<='Z'+4)||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
} 展开
4个回答
展开全部
跟程序无关
是getchar 这个函数的问题
首先有个 缓冲区的概念 也叫stdin
你的输入都保存在这个缓冲区中
getchar 会去缓冲区 准备读取你输入的下一个字符 直到遇到 \n 返回你入的第一个字符
下次再有gatchar 它仍从这个缓冲区 读取数据 直到缓冲区 为空
你做这两个实验 就明白了
int main()
{
char c;
c=getchar();
printf("%c",c);
}
int mian()
{
char c;
while(c=getchar()!='\n');
{
printf("%c",c);
}
}
是getchar 这个函数的问题
首先有个 缓冲区的概念 也叫stdin
你的输入都保存在这个缓冲区中
getchar 会去缓冲区 准备读取你输入的下一个字符 直到遇到 \n 返回你入的第一个字符
下次再有gatchar 它仍从这个缓冲区 读取数据 直到缓冲区 为空
你做这两个实验 就明白了
int main()
{
char c;
c=getchar();
printf("%c",c);
}
int mian()
{
char c;
while(c=getchar()!='\n');
{
printf("%c",c);
}
}
追问
第二个怎么会变成这样?。。。上不了图。。。
输出貌似都是空格
展开全部
如果在tc上运行的话,是输完在输出,在其他编译器如devc++、vc++上的话,一般都是输一个输出一个。其实也没必要在意这个,结果对就好
更多追问追答
追问
VC++也是输完再输出。。。纠结
追答
是吗?貌似只有tc吧!我在devc++上试了下,是输一个输出一个。。。其实你也不必纠结于这个问题,结果对就好啦。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用的是字符串输入,而不是单个输入
更多追问追答
追问
???没定义字符串啊
追答
getchar()这个函数是串输入,而scanf()是单个输入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-24
展开全部
getchar 这个函数的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询