C语言 | 您所在的位置:网站首页 › c语言gets函数的详细用法 › C语言 |
数据的输入输出
前言:一、格式输入输出函数1.格式输出函数printf()2.格式输入函数scanf()
二、字符输入输出函数1.字符输出函数putchar()2.字符输入函数getchar()
三、字符串输入输出函数1.字符串输出函数puts()2.字符串输入函数gets()
四、函数的区别1.gets()函数和scanf()函数的区别2.puts()函数和printf()函数的区别3.getchar()函数和scanf()函数的区别4. putchar()函数和printf()函数的区别
前言:
C语言中没有专门的输入输出语句,C语言的输入输出是靠库函数来实现的。 一、格式输入输出函数 1.格式输出函数printf()格式: printf(“格式控制字符串”,输出列表); 功能: 按格式控制字符串规定的格式,向输出设备(一般为显示器)输出,输出列表中各输出项的值。 如: 补充: 测试: 测试: 格式: scanf(“格式控制”,地址表列); 功能: 按格式控制所规定的格式,从指定的输入设备(一般为键盘)上把数据输入到指定的变量中。
格式: putchar(c); 功能: 向终端输出一个字符。 说明: c为参数,可以是字符型变量、整型变量、字符型常量、表达式或者转义字符,但只能是单个字符而不能是字符串。 2.字符输入函数getchar()格式: getchar(); 功能: 从键盘读入一个字符。 char ch=getchar(); 说明: 只能读取一个字符;该字符可赋给字符变量、整型变量或作为表达式的一部分。 三、字符串输入输出函数 1.字符串输出函数puts()格式: puts(字符数组名);puts(字符串); 功能: 输出字符数组的值,遇到‘\0’结束输出。 说明: —puts()一次只能输出一个字符串,输出字符串后自动换行(\n),可以输出转义字符。 2.字符串输入函数gets()格式: gets(字符数组名); 功能:将输入的字符串赋给字符数组,输入时,遇到第一个回车键(\n)结束输出,可以结束空格和制表符。 说明: 函数gets()只能一次输入一个字符串。 四、函数的区别 1.gets()函数和scanf()函数的区别——gets()函数同scanf()函数一样,在读入一个字符串后,系统自动在字符串后加上一个字符串结束标志‘\0’。 ——gets()以Enter结束输入,但可以接受空格,会舍弃最后的回车符!并且gets()可以读取多个字符。 不同点: scanf不能接受空格、制表符Tab、回车; gets能够接受空格、制表符Tab和回车; scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。 gets:可接受回车键之前输入的所有字符,并用’\0’替代 ‘\n’.回车键不会留在输入缓冲区中 #include int main() { char str1[20], str2[20]; gets(str1); scanf("%s", str2); printf("str1:%s\n", str1); printf("str2:%s\n", str2); return 0; }测试: ——puts()函数一次只能输出一个字符串,输出字符串后自动换行(\n)(将‘\0’自动换行为‘\n’),可以输出转义字符。 ——printf()函数可以同时输出多个字符串,并且能灵活控制是否换行。 例: #include int main() { char str1[] = "student", str2[] = "teacher"; puts(str1);//自动\n puts(str2); printf("%s", str1); printf("%s\n%s", str1,str2); return 0; }测试: ——从标准输入(键盘)里读取下一个字符。返回值为用户输入的ASCⅡ码,出错返回-1,用户输入的字符被存放在键盘缓冲区中,直到输入回车键才从缓冲区依次提取字符,当用户键入回车之后,getchar会从输入流中读取第一个字符。 不同点: scanf遇到 回车(enter),空格,TAB 就会结束一次输入,不会接收空格。 getchar函数只以回车、Enter结束输入,接受空格符。 scanf在一次输入结束后,不会舍弃最后的回车符(即回车符会残留在缓冲区中) getchar回车作为结束的标志,所以在敲回车时’\n’也被存入缓存 scanf()在读取数字时会跳过空格、回车(Enter)、制表符和换行符! getchar函数只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。 代码1: #include int main() { char c1=0, c2=0; c1=getchar();//\n留在缓冲区 c2 =getchar();//遇到\n什么都没输出 printf("%c,%c", c1,c2); return 0; }代码2: #include int main() { char c1=0, c2=0; c1=getchar(); getchar(); c2 =getchar(); printf("%c,%c", c1,c2); return 0; }测试: 提升: 需要用getchar()吃掉回车的几种情况: 前面有scanf 后面也要用scanf()时,中间要用一个空的getchar()吃回车;前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;2个ch=getchar()中间需要一个空的getchar()吃回车。 4. putchar()函数和printf()函数的区别——putchar(a)向终端输出一个字符。其中a可以是被单引号引起来的一个字符[putchar(‘e’)],可以是介于0~127之间的一个十进制整型数(包含0和127)[putchar(23)] ,也可以是事先用char定义好的一个字符型变量 并且只能输出单个字符。 ——printf()格式化输出函数, 用于向标准输出设备按规定格式输出信息, 并且可以输出各种数据类型,还可以有参数。 不同点: putchar会有返回值,并且返回值为()内参数值 转换为的unsigned int 值 如果遇到错误或者文件结束,putchar() 返回EOF,而printf()函数返回值为字符串的长度。 测试: |
CopyRight 2018-2019 实验室设备网 版权所有 |