|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 冷回清风暖 于 2020-2-29 20:43 编辑
它是一个输入流的函数,从标准输入里读取下一个字符,也就是把输入的字符以队列的形式放入缓冲区,直到用户按回车为止。
作用是向终端输出一个字符,参数必须是一个字符,可以是介于0~127之间的一个十进制整型数。
不过我对下面这个程序不明白。
这个程序我想的是:
每输入一个字符,会进入while循环
getchar会将输入的字符所读应的ASCLL码放入缓冲区,并利用变量ch存储.
紧接着进行字符大小写的替换
接下来会运行到putchar函数,到这里应该输出当前字符
所以我预想的输出形式应该是:
每输入一个字符,就会输出对这个字符进行大小写替换的结果,依次循环,最后回车结束程序。
但是运行后的结果是以字符串的形式显示的
输入的字符显示在”请输入一行英文句子:“后面 ,按回车之后才输出的结果
和我想得输入一个字符,就输出这个字符转换后的结果,不一样
查了好久,不知道为什么
- #include <stdio.h>
- #define num 32;
- int main()
- {
- int i , ch;
- printf("请输入一行英文句子:");
- while((ch = getchar())!='\n')//输入字符且并未按回车时进入循环
- {
- if (ch >= 'A' && ch <= 'Z')
- {
- ch = ch + num;
- }
- else if('a' <= ch <= 'z')
- {
- ch = ch - 32;
- }
- putchar(ch);//输出单个字符
- }
- return 0;
- }
复制代码
楼主试试这个代码
- #include <stdio.h>
- #include <conio.h>
- main(void)
- {
- char c ;
- while((c = getch()) != '\r') {
- if (c < 32) c = 46 ;
- else if (c >= 'A' && c <= 'Z') c += 32 ;
- else if (c >= 'a' && c <= 'z') c -= 32 ;
- putch(c) ;
- }
- printf("\n") ;
- }
复制代码
|
|