数据输入输出的概念及在C语言中的实现
2024-01-08 11:32:24
前言概括
1 所谓输入输出是以计算机为主体而言的
2 本章介绍的是向标准输出设备显示器输出数据的语句
3 在C语言中,所有的数据输入、输出 都是由库函数完成的,因此都是函数语句
4 在使用C语言库函数时,要用编译命令#include将有关“头文件”包括到源文件中,使用标准输入输出库函数时要用到“stdio.h”文件,因此源文件开头由以下预编译指令
#include<stdio.h>或者#include"stdio.h"
stdio是standard input&output的意思标准的输入输出
5 考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时不需要加#include<stdio.h>或#include"stdio.h"
putchar
putchar函数是字符输出函数,功能是在显示器上输出单个字符
一般形式:putchar(字符变量)
例如: ? ?putchar('A');//输出大写字母A ? ?putchar(x);//输出字符变量x的值 ? ?putchar('\101')//也是输出字符A ? ?putchar('\n')//换行
对控制字符则执行控制功能,不在屏幕上显示(\n)
注意:在使用putchar前必须要用头文件包含命令#include<stdio.h>
#include<stdio.h> void main() { ? ?char a='B',b='o',c='k'; ? ?putchar(a);putchar(a);putchar(a); ? ?putchar(a);putchar(a);putchar(a); ? ?putchar('\n'); ? ?putchar(b); ? ?putchar(c); } ?
getchar
getchar函数的功能是从键盘上输入一个字符
一般形式:getchar();
通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c; c=getchar();
例如: #include<stdio.h> void main() { ? ?char c; ? ?printf("input a character \n"); ? ?c=getchar();//输入字符数据 ? ?putchar(c);//输出字符 } ?
printf
printf又叫格式输出函数,其关键最末的一个字母f即为”格式(format)之意“
功能就是按照用户指定的格式,把指定的数据显示道显示屏幕中
一般形式:printf(”格式控制字符串“,输出表列);
%d//十进制输出 %ld//十进制长整型输出 %c///字符型输出
例如: #include<stdio.h> void main() { ? ?int a=88,b=89; ? ?printf("%d,%d \n",a,b); ? ?printf("%d,%d \n",a,b); ? ?printf("%c,%c \n",a,b);//输出的是ascII码对应的值 ? ?printf("a=%d,b=%d \n",a,b); }
在printf里面有一个易错的理解:
使用printf函数还要注意一个问题,那就是输出表列中的求值顺序,不同的编译系统不一样相同,可以从左到右,也可以从右到左。turvbo C是按从右到左进行的
#include<stdio.h> void main() { ? ?int i=8; ? ?printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n",i,++i,--i,i++,i--,-i++,-i--); } //只有在printf中,++i,--i可以抵消,i++i--不可抵消,也就是说,第二个和第三个抵消掉了,我们在第四位算出是i=8,也就是说前面都是i,i,i //从右往左算
#include<stdio.h> void main() { ? int i = 8; ?printf(“%d\n”,++i); ?printf(“%d\n”,--i); ?printf(“%d\n”,i++); ?printf(“%d\n”,i--); ?printf(“%d\n”,-i++); ?printf(“%d\n”,-i--); }
格式字符串、精度问题
%d ?十进制输出整数值 %o ?八进制输出整数值 %x ?十六进制输出整数值 %u ?无符号数形式输出整数值 %c ?输出字符值 %s ?使出字符串 %f ?输出十进制浮点数 %e ?科学计数法输出浮点数 %g ?等价于%f或%e,输出两者占位较短的
例如: #include<stdio.h> void main() { ? ?int a=15; ? ?float b=123.1234567; ? ?double c=12345678.1234567; ? ?char d='p'; ? ?printf("a=%d,%5d,%o,%x\n",a,a,a,a); ? ? //%5d表示输出五位占位的数,输出五位,在15前面有三个空格 ? ? ? ?printf("b=%f,%lf,%5.4lf,%e",b,b,b,b); ? ? //"%5.4lf"指定输出宽度为5,精度为4,由于实际长度超过5,故应该按实际位数输出 //%f和%if保留六位小数(最后一位小数会自动进行四舍五入的转换(不是十进制的四舍五入)) ? ? //为什么%f输出的是123.123459呢?是因为float是单精度,不是很准确,很容易计算错误,如果是double那么就不会出现四舍五入的错误了 //用flaot会出现精度问题,建议使用double ? ? ? ?printf("c=%lf,%f,%8.4lf\n",c,c,c); ? ? //c=12345678.123457,12345678.123457,12345678.1235 ? ? ? ?printf("d=%c,%8c\n",d,d); ? ? //d=p, ? ? ? p ? ? }
文章来源:https://blog.csdn.net/2301_81650162/article/details/135451449
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!