数据输入输出的概念及在C语言中的实现

前言概括

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
    
}

  • 35
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值