C语言——数据的输入输出

这篇具有很好参考价值的文章主要介绍了C语言——数据的输入输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

C语言中没有专门的输入输出语句,C语言的输入输出是靠库函数来实现的。

一、格式输入输出函数

1.格式输出函数printf()

格式:
printf(“格式控制字符串”,输出列表);
功能:
按格式控制字符串规定的格式,向输出设备(一般为显示器)输出,输出列表中各输出项的值。
如:
C语言——数据的输入输出,C语言,c语言,开发语言
格式控制:由双引号括起来的字符串,用于指定输出格式。
—普通字符:按原样输出的字符。
—格式说明:用来指定输出数据的输出格式。
形式:%[修饰符]格式字符
输出表列:需要输出的数据列表,彼此间用逗号分隔,可以是任意合法的表达式。
C语言——数据的输入输出,C语言,c语言,开发语言
C语言——数据的输入输出,C语言,c语言,开发语言

补充:
C语言——数据的输入输出,C语言,c语言,开发语言
说明:
1)d格式符。
作用:输出一个带符号的十进制整数(正数不输出符号)
格式:
C语言——数据的输入输出,C语言,c语言,开发语言
例子:

#include <stdio.h>
int main()
{
    int x = 123;
    printf("|%d|\n", x);
    printf("|%5d|\n", x);
    printf("|%-5d|\n", x);
    printf("|%+5d|%+5d|\n", x,-x);
    printf("|%-5d|%-5d|\n", x,-x);
    printf("|%2d|\n", x);
    return 0;
}

测试:
C语言——数据的输入输出,C语言,c语言,开发语言
2)o、x和u格式符。
作用:输出一个无符号的八进制、十六进制或十进制无符号整数。
3)c格式符。
作用:用来输出一个字符。
注意:
一个整数,如果在0~~127之间,也可以用字符形式输出,系统会将该整数转换成对应的ASCII码字符。
4)s格式符。
作用:用来输出一个字符串。
格式:
C语言——数据的输入输出,C语言,c语言,开发语言
5)f格式符。
作用:以小数形式输出单、双精度实数。
格式:
C语言——数据的输入输出,C语言,c语言,开发语言
6)e格式符。
作用:以标准化指数形式输出实数。(小数点前必须有而且只能有一位为非零数字)
格式:
C语言——数据的输入输出,C语言,c语言,开发语言
例子:

#include <stdio.h>
int main()
{
    char ch = 'a';
    float x = 123.456f;
    double y = 321.564321;
    float f = 123.456f;
    printf("%3c\n",ch);
    printf("%8.2s\n","computer");
    printf("%f\n",x);
    printf("%.0lf\n",y);
    printf("%10.2e\n", f);
return 0;
}

测试:
C语言——数据的输入输出,C语言,c语言,开发语言
注意
输出表列可以是变量、常量、数组元素、函数引用、及带运算符的表达式。
例:printf(“%f%d%d%f”,3.14,a+b,x,cos(y));
输出列表中各输出项与各格式说明必须按照从左到右的顺序在类型上一一匹配。
如果实型数据用%d输出,结果出错,整型数据用%f输出,结果为零。
当格式符比输出项多时,多出来的格式符输出不定值;当格式符比输出项少时,多出来的输出项不输出。
输出表列求值顺序:vc是从右到左顺序求值,输出任然是从左到右。
可以在格式符的域宽前面加0,用来补0.
例:printf(“|%-05d|\n”,12); //输出|12 |
printf(“|%05d|\n”,12); //输出|00012|
除了X、E、G格式符外,其他格式符必须用小写字母。

2.格式输入函数scanf()

格式:
scanf(“格式控制”,地址表列);
功能:
按格式控制所规定的格式,从指定的输入设备(一般为键盘)上把数据输入到指定的变量中。
C语言——数据的输入输出,C语言,c语言,开发语言
格式控制:
—普通字符:需原样输入的字符。
—格式说明:用于指定输入数据的输入格式。
形式:%[修饰符]格式字符。
地址表列:给出个变量的地址。
—地址是由‘&’运算得到的。
—‘&’是取地址运算符,得到变量在内存中的地址,单目运算符,右结合性。
C语言——数据的输入输出,C语言,c语言,开发语言

C语言——数据的输入输出,C语言,c语言,开发语言
格式输入的使用与注意:
1)输入数据时采用的分隔符应与格式控制中的分隔符一致。
格式控制中无普通字符时,输入数值型数据可用空格、tab键、回车键作分隔符。
如:
int a,b;float f,e;
scanf(“%d%d”,&a,&b);//输入23空格456回车
2)输入数据时不可指定精度,但可指定宽度。
例:scanf(“%7.2f”,&a);//修饰符错误
3)输入格式符带有* 表示该数据不赋值。
例:scanf(“%d%*d%d”,&a,&c);
输入:12空格34空格567回车;输出a=12,c=567,34被跳过
4)无符号数可用%d、%o、%x格式输入。
5)用c格式符输入字符时,空格、转义字符均为有效字符。(——>回车的意思)
scanf(“%c%c%c”,&a,&b,&c);
若键入:A空格B空格C回车 //则a=A,b=空格,c=B
若键入:A回车B回车 //则a=A,b=回车,c=B
6)%d、%f、%s等在读入数字时,前导的空字符被跳过。
在下列情况下可认为数据输入结束:
遇空格、回车、tab键;
遇宽度结束;
非数值字符。(比如x)
7)double必须用%lf(或%le)
float必须用%f(或%e)
例:

#include <stdio.h>
int main()
{
    int a; float b; char c;
    scanf("%2d%3f%c", &a, &b, &c);
    printf("a=%d,b=%f,c=%c\n", a, b, c);
    return 0;
}

C语言——数据的输入输出,C语言,c语言,开发语言
注意:
格式符%f%c之间不能有空格,要直接输入。

二、字符输入输出函数

1.字符输出函数putchar()

格式:
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 <stdio.h>
int main()
{
    char str1[20], str2[20];
    gets(str1);
    scanf("%s", str2);
    printf("str1:%s\n", str1);
    printf("str2:%s\n", str2);
    return 0;
}

测试:
C语言——数据的输入输出,C语言,c语言,开发语言

2.puts()函数和printf()函数的区别

——puts()函数一次只能输出一个字符串,输出字符串后自动换行(\n)(将‘\0’自动换行为‘\n’),可以输出转义字符。
——printf()函数可以同时输出多个字符串,并且能灵活控制是否换行。
例:

#include <stdio.h>
int main()
{
    char str1[] = "student", str2[] = "teacher";
    puts(str1);//自动\n
    puts(str2);
    printf("%s", str1);
    printf("%s\n%s", str1,str2);
    return 0;
}

测试:
C语言——数据的输入输出,C语言,c语言,开发语言

3.getchar()函数和scanf()函数的区别

——从标准输入(键盘)里读取下一个字符。返回值为用户输入的ASCⅡ码,出错返回-1,用户输入的字符被存放在键盘缓冲区中,直到输入回车键才从缓冲区依次提取字符,当用户键入回车之后,getchar会从输入流中读取第一个字符。
不同点:
scanf遇到 回车(enter),空格,TAB 就会结束一次输入,不会接收空格。
getchar函数只以回车、Enter结束输入,接受空格符。
scanf在一次输入结束后,不会舍弃最后的回车符(即回车符会残留在缓冲区中)
getchar回车作为结束的标志,所以在敲回车时’\n’也被存入缓存
scanf()在读取数字时会跳过空格、回车(Enter)、制表符和换行符!
getchar函数只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。

代码1:

#include <stdio.h>
int main()
{
    char c1=0, c2=0;
    c1=getchar();//\n留在缓冲区
    c2 =getchar();//遇到\n什么都没输出
    printf("%c,%c", c1,c2);
    return 0;
}

C语言——数据的输入输出,C语言,c语言,开发语言

代码2:

#include <stdio.h>
int main()
{
    char c1=0, c2=0;
    c1=getchar();
    getchar();
    c2 =getchar();
    printf("%c,%c", c1,c2);
    return 0;
}

测试:
C语言——数据的输入输出,C语言,c语言,开发语言

提升:
需要用getchar()吃掉回车的几种情况:

  1. 前面有scanf 后面也要用scanf()时,中间要用一个空的getchar()吃回车;
  2. 前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;
  3. 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()函数返回值为字符串的长度。
测试:
C语言——数据的输入输出,C语言,c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-521152.html

到了这里,关于C语言——数据的输入输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从字符输入到输出——C语言中的字符输入输出

    字符是C语言中的一个重要数据类型,而字符的输入输出又是程序中不可缺少的一部分。本文将详细介绍C语言中字符输入输出,包括字符输入输出函数的使用、样例程序解析、以及相关的注意事项。 在C语言中,scanf_s函数是一个常用的字符输入函数。其格式如下: 这里的%c表

    2024年02月05日
    浏览(40)
  • R语言 | 输入与输出

    目录 一、认识文件夹 1.1 getwd()函数 1.2 setwd()函数 1.3 file.path()函数 1.4 dir()函数 1.5 list.files()函数 1.6 file.exists()函数 1.7 file.rename()函数 1.8 file.create()函数 1.9 file.copy()函数 ​1.10 file.remove()函数 二、数据输出:cat()函数 三、读取数据:scan()函数 四、输出数据:write()函数 五、数据

    2024年02月03日
    浏览(31)
  • 2.C语言——输入输出

    1.输入:getchar() 字面意思, 接收单个字符 ,使用方法 2.输出:putchar() 1.输入:scanf() 格式: scanf(“格式控制字符串”,地址列表); 如果格式符之间添加了空格,那么按照规则, 会忽略掉全部的空白符 直到遇到下一个不是空白符的字符 格式说明符 意义 %d 输入有符号的十进制数

    2024年02月19日
    浏览(37)
  • 6、C语言:输入与输出

    使用输入/输出库函数的每个源程序文件必须包含: 许多程序只从一个输入流中读取数据,并且只向一个输出流中输出数据。对于这样的程序,只需要使用函数getchar、putchar和printf实现输入/输出即可。 格式化输出——printf函数 函数printf在输出格式format的控制下,将其参数进行

    2024年02月01日
    浏览(45)
  • C语言入门篇——输入输出篇

    目录 1、printf()函数 1.1、printf()函数中的标记 1.2、输出最小宽度(width) 1.3、精度(.precision) 2、scanf()函数 2.1、scanf(“输入控制符”, 输入参数) 2.2、scanf(“输入控制符非输入控制符”, 输入参数); 2.3、字符串和转义字符 2.4、注意事项 printf()函数是C语言标准输出函数,用于将

    2024年02月04日
    浏览(38)
  • 多组的输入输出(C语言)

    当你想计算多组数字相加时,那就需要输入多个数字,在C语言中,一般一个scanf只能输入一组数据,那如何能同时输入多组数据呢? 例(一):  直接用while来解决,上代码: 例(二):     这个就更显而易见了,直接用while:  例(三):  例(四):     例(五):

    2024年02月08日
    浏览(34)
  • C语言 链表输入输出数组

            链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一

    2024年02月08日
    浏览(43)
  • 【C语言】对文件的输入输出

    💗个人主页💗 ⭐个人专栏——C语言初步学习⭐ 💫点击关注🤩一起学习C语言💯💫 凡是用过计算机的人都不会对“文件”感到陌生,大多数人都接触过或使用过文件,例如: 写一篇文章把它存放到磁盘上以文件形式保存; 编写好一个程序,以文件形式保存在磁盘中; 用

    2024年02月08日
    浏览(38)
  • C语言学习笔记:输入&输出

    ✨博文作者:烟雨孤舟 💖 喜欢的可以 点赞 收藏 关注哦~~ ✍️ 作者简介: 一个热爱大数据的学习者 ✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教! 目录 scanf和printf gets和puts getchar和putchar printf是格式化的输出函数,scanf是C语言的输

    2024年02月09日
    浏览(45)
  • 高阶C语言|C语言文件管理--输入输出流

    我们前面已经介绍了结构体,也学习了通讯录,存在一个问题就是,每次通讯录程序退出,之前写好的信息都没了,下次进入通讯录,又得重新输入信息,这样的通讯录使用起来就很难受。那么怎样可以使数据保留下来,这里就涉及到了数据持久化的问题,数据持久化的方法

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包