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()的区别与使用相关推荐

  1. c语言中getche的用法,c语言中getch的用法

    [www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...

  2. C语言输入不同字符 屏幕显示不同,c语言中易混淆的东西 1 getch() getche()和getchar()之间区别 scanf sscanf (fscanf fgets fgetc )...

    getch() getche()和getchar()之间区别 发布人 : IT专家 发布时间 : 2009-10-21 07:52:23.0 首先不要忘了,要用getch()必须引入头文件conio. ...

  3. C语言中getch()的用法

    C语言中getch()函数详解及简单实例 这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!Wi ...

  4. getch方法_c语言中getch的用法

    1 c 语言中 getch 的用法 getch() 函数是无回显的从控制台取得一个字符. 以利用 getch() 函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面 , 即 任意键继续效果.下面 ...

  5. int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处

    C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...

  6. C语言中,#include的用法:#include 和 #include区别

    C语言中,#include的用法:#include "" 和 #include<>区别 采用 " ":依次搜索当前目录.包括/I编译开关的路 ...

  7. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  8. Go语言中的fmt.Print, fmt.Printf, fmt.Println的区别和使用场景

    Go语言中的fmt.Print, fmt.Printf, fmt.Println的区别和使用场景 fmt 包的介绍 fmt.Print === 原样输出 fmt.Printf === 格式输出 fmt ...

  9. 区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets

    首先,这两个函数不是C标准库中的函数,    int getch(void) //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符.也就是,不带回显.  int getche(v ...

  10. c语言中\0’ ,‘0’, “0” ,0的区别

     看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区 ...

最新文章

  1. 开源图神经网络框架DGL升级:GCMC训练时间从1天缩到1小时,RGCN实现速度提升291倍...
  2. android 关机充电流程
  3. c 语言中unsigned char类型变量占用内存大小,C数据类型
  4. JAVA用JComboBox_java JCombobox和JList的使用
  5. 文件上传漏洞原理/方式/防护
  6. python3.8.5-Python 3.8.5 正式发布
  7. 第三章:顺序栈及其应用之三---数制转换
  8. rsa加密算法_cryptography---RSA算法
  9. 校准 Linux 服务器的时间
  10. 杭电数据结构课程实践-哈密顿图的判断
  11. python交并补_python开发学习- ( 字典的相关函数 集合中的交差并补 集合相关的函数 冰冻集合)...
  12. python 鸭子类型
  13. 同比 数据模型 环比_同比(环比)在分析模型中的实现
  14. h2o api java_H2O框架简介
  15. 智遥工作流——会签与多人审批区别
  16. JavaScript中0.1 + 0.2 等于多少
  17. 智能汽车里究竟“藏”有多少传感器?
  18. OnePlus一加手机:测试
  19. 清华规划院 伟景行 诚聘 Jsp/Java/Web高级开发工程师 互联网开发主管 测试工程师 etc.
  20. 转:Linux系统管理学习路线图

热门文章

  1. 三星BESPOKE家电系列海外发布会看点一览,定制化设计成未来家居首选
  2. 【小万出生记——第3篇】小万升级为家用服务机器人
  3. 如何做IT项目PoC测试
  4. AdobeFlashPlayer发生安全沙箱冲突
  5. mysql 数据库健康巡检 报告
  6. 有些打不开的国外网页
  7. 实现Gateway网关统一Swagger入口
  8. 发现一php木马代码
  9. Surface Book重装系统步骤
  10. CentOS7-命令-查看操作历史记录(history)