0
点赞
收藏
分享

微信扫一扫

scanf、printf、getchar、putchar

夕颜合欢落 2022-04-30 阅读 50

2、使用scanf、printf、getchar、putchar输入输出

1)scanf函数

格式:scanf(“格式控制符”,变量地址);

​ 如scanf(“%d”,&n);

​ scanf是输入函数,其中%d,表示通过这个scanf函数用户需要输入一个int型变量,那这个变量输入后存在哪里呢?就是给后面的n。即通过scanf将int型数据存放在n中。&是取地址运算符,变量在定义之后,就会在内存中分配一块空间给这个变量,该空间在内存中的地址称为变量的地址,为了得到变量的地址,需要在变量前面加&。

​ 如果有类似13:10:02这种类型的数据需要输入,怎么办呢?scanf(”%d:%d:%d“,&hh,&mm,&ss);即scanf双引号中的内容其实就是整个输入

​ 注意:如果要输入”3 4“这种空格隔开的数字,两个%d间可以不加空格。这是因为scanf对格式控制符(%c)的输入是以空白符(如空格、换行等)为结束判断标志的,所以会自动跳过空格,不作为输入。

%c可以把空格和换行符作为字符读入

%s以空格跟换行作为读入结束的标志

常见数据类型变量的scanf格式符:

数据类型格式符举例
int%dscanf(”%d“,&n);
long long%lldscanf(”%lld“,&n);
float%fscanf(”%f“,&fl);
double%lfscanf(”%lf“,&db);
char%cscanf(”%c“,&c);
字符串(char数组)%sscanf(”%s“,str);

注意:输入字符数组不用加&,因为数组名已经代表了第一个数组元素的地址;

double类型的变量,输出格式中为%lf,而在输出格式中为%f

#include<stdio.h>
int main(){
int hh,mm,ss;
scanf("%d:%d:%d",&hh,&mm,&ss);
printf("%d:%d:%d",hh,mm,ss);

int n;
char c;
char str[10];
scanf("%d%c%s",&n,&c,str);//若输入5 c abc
printf("n=%d,c=%c,str=%s",n,c,str);//n=5,c= ,str=c
}

2)printf函数:printf(“格式控制符”,变量名称);

常见数据类型变量的printf格式符:

数据类型格式符举例
int%dprintf(”%d“,n);
long long%lldprintf(”%lld“,n);
float%fprintf(”%f“,fl);
double%fprintf(”%f“,db);
char%cprintf(”%c“,c);
字符串(char数组)%sprintf(”%s“,str);

三种实用的输出格式:

输出格式描述
%md可以使不足m位的int型变量以m位右对齐输出,其中高位用空格补齐;如果变量本身超过m位,则不变
%0md同%md,只是不是用空格补齐,而是0补齐
%.md使浮点型小数保留m位小数输出 ,这里的保留使用的是”四舍六入五成双“规则

注:printf中可以使用转义字符(scanf也可以,只是不常用)

​ 通过printf(”%%“);或printf(”\\“);输出%或;

#include<stdio.h>
int main()
{
    //注:两个float类型的浮点数相乘,结果在整数部分就不精确了
    float f1=8765.123,f2=8765.123;
    double d1=8765.123,d2=8765.123;
    printf("%f\n%f\n",f1*f2,d1*d2);
    printf("-------------------------------\n");
    //%md,%0md,%.mf的使用
    int a1=123,a2=12345;
    printf("%5d\n",a1);
    printf("%05d\n",a1);
    printf("%5d\n",a2);
    printf("-------------------------------\n");
    double d=12.3456;
    printf("%.0f\n",d);
    printf("%.1f\n",d);
    printf("%.2f\n",d);
    printf("%.3f\n",d);
    printf("%.4f\n",d);
}

在这里插入图片描述

3、使用getchar/putchar输入/输出字符

注:getchar、putchar用来输入输出单个字符,且getchar可以识别空白符。

#include<stdio.h>
int main(){
    char c1,c2,c3;
    c1=getchar();
    getchar();
    c2=getchar();
    c3=getchar();
    putchar(c1);
    putchar(c2);
    putchar(c3);
    return 0;
}

输入为:a<空格>bcd

输入为:ab<enter键>cd时

举报

相关推荐

0 条评论