C语言程序设计学习笔记之getchar()
来源:互联网 发布:apache自定义404页面 编辑:程序博客网 时间:2024/05/16 19:34
在实际编写运行C语言程序设计文件复制和字符计数的时候,发现putchar()函数读取字符的过程实在是扭曲,有必要记一下,以防以后再相遇。
下面是我写的代码:
#include <stdio.h>main(){int c;c=getchar();while(c!=EOF){printf("输入的字符为:"); putchar(c);printf("\n");c=getchar();}printf("您已终止输入。") ;}输出的机构如下图:
putchar()函数是每次都读取一个字符,验证是否符合条件,符合运行,回转再进行比较,直到输入的字符比较完毕,EOF(Ctrl+Z)如果在有效字符后,没有效果,回车也算是一个字符。
上面的程序运行时出现的情况,不是putchar()的问题,而是getchar()的实现决定的。
以下部分是找到的getchar()更详细的解释:
头文件:#include <stdio.h>
函数getchar()用于从标准输入控制台读取字符,原型如下:
int getchar(void);
【参数】该函数没有参数。
【返回值】函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
【说明】getchar()非真正函数,而是getc(stdin)宏定义。
【实例】下面的示例演示了getchar()函数的使用,使用该函数获取标准输入控制台中的字符,直到按回车键结束,代码如下。运行上述程序后,将采用getchar()函数获取当前控制台的输入,直到按回车键结束,并将其输出。
读者可以尝试将第5行的 printf ("%c", c) 改成printf ("%d", c),看看有什么效果。
请读者再来看一个例子,代码如下:例子本身很简单,但是仔细分析会发现有许多需 要注意的地方。输入字符wes然后按回车键出现运行结果。这里着重与getch()对比分析。首先,它需要按回车键才能返回。其次, 它返回的是缓冲区的第一个字符。再者它可以连续多次获取在按回车键前输入的多个字符。而getchO则是无回显的且不需要按回车键即返回。
函数getchar()用于从标准输入控制台读取字符,原型如下:
int getchar(void);
【参数】该函数没有参数。
【返回值】函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
【说明】getchar()非真正函数,而是getc(stdin)宏定义。
【实例】下面的示例演示了getchar()函数的使用,使用该函数获取标准输入控制台中的字符,直到按回车键结束,代码如下。
- #include<stdio.h>
- void main( ){
- int c;
- while( (c=getchar()) != '\n' ) //从控制台流中读取字符,直到按回车键结束
- printf ("%c", c); //输出读取内容
- }
#include<stdio.h>void main( ){ int c; while( (c=getchar()) != '\n' ) //从控制台流中读取字符,直到按回车键结束 printf ("%c", c); //输出读取内容}
读者可以尝试将第5行的 printf ("%c", c) 改成printf ("%d", c),看看有什么效果。
请读者再来看一个例子,代码如下:
- #include<stdio.h>
- void main()
- {
- char ch = getchar();
- char ch2 = getchar();
- printf("You put char is %c\n",ch);
- printf("You put char is %c\n",ch2);
- system("pause");
- return;
- }
#include<stdio.h>void main(){ char ch = getchar(); char ch2 = getchar(); printf("You put char is %c\n",ch); printf("You put char is %c\n",ch2); system("pause"); return;}
0 0
- C语言程序设计学习笔记之getchar()
- C学习笔记12 getchar()
- [C语言程序设计]学习笔记总体规划
- C语言程序设计学习笔记一
- [C语言程序设计]学习笔记总体规划ver1.1
- c语言程序设计现代方法(学习笔记)
- C语言程序设计-学习笔记ch01[未完成]
- C语学习之 getchar() putchar()
- C语言学习笔记之字符I/O(getchar()函数与putchar()函数)
- 《C语言程序设计》电子笔记
- 如何学习c语言程序设计
- C语言程序设计学习总结
- C语言程序设计之预处理
- 中国大学MOOC-翁恺-C语言程序设计习题集(学习笔记)
- Python语言程序设计-学习笔记2:Python编程之基本方法
- Python语言程序设计-学习笔记3:Python编程之实例解析
- Python语言程序设计-学习笔记4:Python编程之数据类型
- 《C语言程序设计现代方法》笔记
- Java中的break,continue关于标签的用法
- 家用电器CCC认证相关标准
- 用classwizard生成某个基类的继承类
- Java 封装的邮件发送类,可直接调用(基于Maven)
- DXP Shift+空格键 无效原因及解决
- C语言程序设计学习笔记之getchar()
- C# 利用反射查看程序集下的类
- c#命名空间
- Android 一步步
- HTML5 Audio/Video 标签,属性,方法,事件汇总
- HTTP协议
- 下载android4.4.2源码全过程(附已下载的源码)
- Android中的长度单位详解(dp、sp、px、in、pt、mm)
- 快速设计loading加载的gif图片,做一个属于自己的加载图