一个程序
#include<stdio.h>
main()
{
char c;
while((c=getchar())!='\n')
{
switch(c-'2')
{
case 0:
case 1:
putchar(c+4);
case 2:
putchar(c+4);break;
case 3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
printf("\n");
return 0;
}
输入2473<回车>,结果是668977,谁能解释一下吗?
while((c=getchar())!='\n')的意思是:一直循环,等到用户输入回车为止,结束循环。
当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。
(c=getchar())!='\n'表示的条件语句意思是:判断用户的输入字符不是'\n',即回车,只要用户输入的不是回车,while循环就会一直执行。
扩展资料:
getch与getchar功能比较:
1、getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1,输入的字符不会回显在屏幕上。
2、getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。
参考资料来源:百度百科-getchar()
参考资料来源:百度百科-while
为什么这个是一个字符一个字符读取的?而非2473一起读入。
追答这是getchar() 啊,作用就是每次从控制台读入一个字符 你输入的时候是一起输入的 但是他放在了那个缓存里 一次读入一个
追问你不能给个QQ,想问你关于C语言方面的东西,谢谢。
本回答被提问者采纳