C语言中getch()、getche()、getc()、getchar()、gets()、fgetc()、fgets()的区别与使用
getch()
、getche()
、getc()
、getchar()
、gets()
、fgetc()
、fgets()
为C语言中七个常用且相似的字符与字符串处理函数,区别如下:
1.int getch(void)
:从标准输入读取字符,不带回显,不需要换行符
#include <stdio.h>
#include <conio.h>int main() {printf("please input letter with getch():");printf("\ngetch():%c", getch());/*输出:please input letter with getch():getch():c*/return 0;
}
2.int getche(void)
:从标准输入读入一个字符,带回显,不需要换行符
#include <stdio.h>
#include <conio.h>int main() {printf("please input letter with getche():");printf("\ngetche():%c", getche());/*输出:please input letter with getche():cgetche():c*/return 0;
}
3.int getc(FILE *stream)
:从指定的流stream获取一个字符,程序等待输入时,缓冲区可以输入多个字符,换行符表示输入结束,但函数只会读取第一个字符
#include <stdio.h>int main() {printf("please input letter with getc():");printf("getc():%c", getc(stdin));/*输出:please input letter with getc():cccgetc():c*/return 0;
}
4.int getchar(void)
:从标准输入读取字符,等同于getc()
带有stdin作为参数
#include <stdio.h>int main() {printf("please input letter with getchar():");printf("getchar():%c", getchar());/*输出:please input letter with getchar():cccgetchar():c*/return 0;
}
5.char *gets(char *str)
: 从标准输入stdin读取一行,并把它存储在str所指向的字符串中,当读取到换行符会停止并丢弃换行符,类似于scanf("%[^\n]%*c", str);
#include <stdio.h>
#include <stdlib.h>#define MAX_SIZE 10int main() {char *str = (char*)malloc(MAX_SIZE * sizeof(char)); printf("please input string with gets():");gets(str);//类似于scanf("%[^\n]%*c", str);char c = getchar();//程序会在这里等待输入printf("gets():%s", str);/*输出:please input string with gets():cccgets():ccc*/free(str);return 0;
}
6.int fgetc(FILE *stream)
:从指定的流stream获取一个字符,fgetc()
和getc()
最大的区别在前者是函数,后者是宏,所以getc()
的参数不能是有副作用的表达式(即表达式的执行会改变表达式中的变量的值,如i++
)。
#include <stdio.h>int main() {printf("please input letter with fgetc():");printf("fgetc():%c",fgetc(stdin));/*输出:please input letter with fgetc():cccfgetc():c*/return 0;
}
7.char *fgets(char *str, int n, FILE *stream)
:从指定的流stream读取一行,并把它存储在str所指向的字符串内,当读取n-1个字符或者读取到换行符时,再或者到达文件末尾时,停止读取
#include <stdio.h>
#include <stdlib.h>#define MAX_SIZE 10int main() {char *str = (char*)malloc(MAX_SIZE * sizeof(char)); for (int i = 0; i < 10; i++) {str[i] = '#';}printf("please input string with fgets():");if (fgets(str, 3, stdin) != NULL) {printf("fgets():%s", str);}/*输出:please input string with fgets():ccccccfgets():cc*/free(str);return 0;
}
C语言中getch()、getche()、getc()、getchar()、gets()、fgetc()、fgets()的区别与使用相关推荐
- c语言中getche的用法,c语言中getch的用法
[www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...
- C语言输入不同字符 屏幕显示不同,c语言中易混淆的东西 1 getch() getche()和getchar()之间区别 scanf sscanf (fscanf fgets fgetc )...
getch() getche()和getchar()之间区别 发布人 : IT专家 发布时间 : 2009-10-21 07:52:23.0 首先不要忘了,要用getch()必须引入头文件conio. ...
- C语言中getch()的用法
C语言中getch()函数详解及简单实例 这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!Wi ...
- getch方法_c语言中getch的用法
1 c 语言中 getch 的用法 getch() 函数是无回显的从控制台取得一个字符. 以利用 getch() 函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面 , 即 任意键继续效果.下面 ...
- int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处
C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...
- C语言中,#include的用法:#include 和 #include区别
C语言中,#include的用法:#include "" 和 #include<>区别 采用 " ":依次搜索当前目录.包括/I编译开关的路 ...
- c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别
详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...
- Go语言中的fmt.Print, fmt.Printf, fmt.Println的区别和使用场景
Go语言中的fmt.Print, fmt.Printf, fmt.Println的区别和使用场景 fmt 包的介绍 fmt.Print === 原样输出 fmt.Printf === 格式输出 fmt ...
- 区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets
首先,这两个函数不是C标准库中的函数, int getch(void) //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符.也就是,不带回显. int getche(v ...
- c语言中\0’ ,‘0’, “0” ,0的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区 ...
最新文章
- 开源图神经网络框架DGL升级:GCMC训练时间从1天缩到1小时,RGCN实现速度提升291倍...
- android 关机充电流程
- c 语言中unsigned char类型变量占用内存大小,C数据类型
- JAVA用JComboBox_java JCombobox和JList的使用
- 文件上传漏洞原理/方式/防护
- python3.8.5-Python 3.8.5 正式发布
- 第三章:顺序栈及其应用之三---数制转换
- rsa加密算法_cryptography---RSA算法
- 校准 Linux 服务器的时间
- 杭电数据结构课程实践-哈密顿图的判断
- python交并补_python开发学习- ( 字典的相关函数 集合中的交差并补 集合相关的函数 冰冻集合)...
- python 鸭子类型
- 同比 数据模型 环比_同比(环比)在分析模型中的实现
- h2o api java_H2O框架简介
- 智遥工作流——会签与多人审批区别
- JavaScript中0.1 + 0.2 等于多少
- 智能汽车里究竟“藏”有多少传感器?
- OnePlus一加手机:测试
- 清华规划院 伟景行 诚聘 Jsp/Java/Web高级开发工程师 互联网开发主管 测试工程师 etc.
- 转:Linux系统管理学习路线图