C语言Day10:数据的输入与输出

各位亲爱的读者们,大家好,经历了一个暑假的休息后,我们又要重新开始投入到计算机的学习深造里面去啦!今天给大家带来的内容是C语言中数据的输入与输出相关内容。

一.printf格式化输出函数

        printf函数是C语言提供的格式化输出函数,其可以按照指定的格式将数据显示在屏幕上,语法格式如下

printf("输出格式描述串",输出参数列表);

其中,输出格式描述串用于给出显示格式的控制,一般用若干字符和占位符组成

           输出参数列表一般由若干将要显示的变量、常量或表达式组成,多个输出参数互相间需用逗号隔开

printf("x=%d,y=%f",x,y);

其中“x=%d,y=%f”就是输出格式描述串,引号外的x,y就是输出参数列表

%d给整数变量x占位,%f给实型变量y占位,占位符与输出参数一一对应

printf函数常用占位符有%d,%ld,%f,%e,%c等等,在输出数据时还可以通过%md、%m.nf、%ms等方式来控制整数、实数以及字符串所占的列数,其中m表示结果所占列总数,n表示实数的情况下保留小数点后面的小数位数。

二.scanf格式化输入函数

        scanf函数是c语言提供的格式化输入函数,它可以按照指定的格式将数据从键盘读取到C程序中,scanf函数语法格式如下

scanf("输入格式描述串",输入参数地址列表);

输入格式描述串用于控制输入格式,一般由若干占位符和间隔符等组成

输入参数地址列表是那些需要被输入数据的若干变量的地址列表

在从键盘输入数据并赋值给以上三个变量,通常有以下三种方式

方式一:scanf("%d%f%lf",&x,&y,&z);
键盘输入时可以用空格、tab键或回车键来间隔三个数(注意不能用其它字符间隔),因为以上输入格式控制串“%d%f%lf"的3个占位符之间没有指定间隔符,这时只能使用空格键、tab键或回车键作为数据输入时的间隔符。
键盘输入示例:123 1.2 3.123(采用空格间隔)
需要注意的是,在printf中,float和double类型都采用%f作为占位符,但在scanf函数中float需使用%f,而double类型必须使用%lf作为占位符。
方式二:scanf(“%d,%f,%lf",&x,&y,&z);
这种方式的输入格式描述串明确要求用英文逗号作为输入数据之间的间隔,这时键盘输入的时候,三个数中间只能用英文逗号作为间隔符,才能正确输入三个值。
注意:变量名前面要加上&符,它是取地址运算符,用于获取变量在内存的地址,这样键盘输入的数据才能存到变量所在的内存空间中。
键盘输入示例:123,1.2,3.123
方式三:scanf(“x=%d,y=%f,z=%lf",&x,&y,&z);
这种方式,输入格式描述串更详细的描述了输入格式,即要求用户在输入数据时必须同时输入除占位符以外的所有格式字符。本例中,用户键盘输入数据时,必须按照以下格式才能正确输入三个值x=123,y=1.2,z=3.123

scanf函数常用占位符与printf函数相同

注意:使用scanf进行混合类型数据输入时,需注意一个特殊情况。即当输入整型数据或实型数据后,要接着输入字符类型数据时,此时空格键、tab键和回车键将不能起到间隔作用,因为%c占位符将它们三者都认为是有效字符,会错误的读取它们,解决方法有两种。
假设有变量定义int x;float y;char ch;
方法—:scanf(“%d%f%c”,&x,&y,&ch);
键盘输入完前面数值后直接输入要输入的字符。
键盘输入示例:23.14a
最终结果:x=2,y=3.14,z='a'
方法二:scanf("%d,%f,%c”,&x,&y,&ch);
这种方法明确要求用户采用英文逗号作为三个数据的间隔符。
键盘输入示例:2,3.14,a
同样正确完成了3个变量的输入需求。不过,在实际应用中,需根据需求或题目输入要求来设计scanf的输入格式描述串进行正确的输入操作。最后,使用scanf函数时,同样要注意输入格式描述串中占位符的数量、顺序也要和后面输入变量的个数以及类型顺序保持一致。另外,变量名前的取地址运算符&不能漏掉,否则会出现语法错误或无法实现输入的情况。

三.今日总结

        在今天的学习中,博主给大家带来了C语言中的数据的输入与输出相关知识,在明天的学习中,博主将会给大家带来顺序结构程序设计的相关内容,在这里感谢大家的关注与支持!欢迎在评论区分享属于你的看法与见解,博主看到后会第一时间回复!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值