3.1基本输入输出函数\

本文深入解析C语言中的输入输出函数,包括printf()和scanf()的详细使用方法,如格式化输出、输入数据类型处理及栏宽设置。同时,介绍了getchar()、putchar()、getche()、getch()、gets()和puts()等其他输入输出函数的特点和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1.1printf()函数

1.printf 函数输出格式中printf(“%d[标志设置][栏宽设置][.精度设置][数据长度修饰词]格式化字符,其中[]的内容均可忽略,而[数据长度修饰词]包括h,l两种字符,h表示将int转换为short int,l表示将int转化为long int。例如:

printf("%ld",123)
>>>123

上表是格式化字符声明。

2.栏宽设置(达到对齐的效果)

printf("%10d\n"123);

>>>         123 
printf("%*d",10,123);
>>>         123

3.1.2  scanf()函数

scanf 函数与printf()函数相反,scanf函数将输入的数值,字符或字符串送给指定的变量,是C语言常用的输入函数。

scanf (char*格式化字符串,自变量列表);

使用scanf函数的时候必须使用变量地址作为参数,程序中使用&获取变量的地址。连续输入多笔数值,在准备输入数据时需要用space或enter或tab隔开,如下:scanf(”%d%f“, &num1, &num2);

输入数据时:20   123.99

格式化字符串中,用逗号分割那么输入时也要用逗号:

scanf(”%d,%f“,&num1,&num2);     输入数据时:20,123.09

scanf和printf差不多只不过scanf只作为读取函数数据所以不能显示格式化字符之外的字符或字符串

scanf(”请输入:%o“,&a)必须改为printf(”请输入:“);scanf(”%o“,&a);我现在的理解就是scanf()函数就是识别存放数值类型的,把用户输入的数值送给指定扽变量,printf()可以将字符按指定的格式化输出,例如打印出一个八进制的十进制数值

char c;
printf(“请输入一个八进制数:”);
scanf ("%o",c);

printf("十进制:%d",c);
char c;
printf("输入字符:");
scanf("%c\n",&c);     /*将输入的字符赋给变量c*/
printf("你输的字符的ASCII码为:%d\n",c);

>>>输入字符:a
>>>你输入的字符的ASCII码为:97

结果:请输入一个八进制数:654

十进制:428

scanf函数和栏宽设置

int main()
{
    int areacode,telnum;
    printf("请输入十位电话号码:”);
    scanf(“%3d%7d”,&areacode,&telnum);
    printf("电话区号:%3d\n",areacode);
    printf("电话号码:%7d\n",telnum);
    return 0;

}

3.2其他输入输出函数简介

char str []={'h','e','l','l','o','\0');

char str[]="hello";              都是字符串合法的声明方式。

3.2.1getchar()函数和putchar()函数

getchar()会将用户输入的字符响应在屏幕上,回车后读取第一个字符,putchar()则是打印功能,如下:

int main()
{
    char a,c[20];
    printf("请输入字符:");
    a=getchar();     /*回车后a读取为输入的字符串的第一个字符*/
    printf("你输入的字符为:");
    putchar(a);
    scanf("%s",c);    /*读取剩下的字符*/
    printf("\n%s\n",c);
    putchar("\n");
    return 0;

}

>>>请输入字符:happy
>>>你输入的字符为:h
appy

3.2.2getche()函数和getch()函数

int main()
{
    char a,c;
    printf("输入字符:");
    a=getche();   /*将获取字符显示在屏幕上*/
    putchar("\n");
    printf("输入字符:");
    c=getch();     /*获取字符不能显示*/
    putchar('\n');
    printf("getche()获取的字符为:%c\n",a);
    printf("getch()获取的字符为:%c\n",c);
    return 0;
}

运行结果:

>>>输入字符:a

输入字符:

getche()获取的字符为a

getch()获取的字符为c

3.2.3gets()函数和puts()函数

int main()
{
    char c[30];
    printf("输入字符串:\n",c);
    gets (c);
    puts(c);
    return 0;
}

>>>输入字符串:happy

happy

3.3练习

(1)自定义日期格式:

int year,month,day;
printf("请输入日期:");
scanf("%d %d %d",&year,&month,&day);

printf("日期:%d-%d-%d\n",year,month,day);
return 0;

>>>请输入日期:2018 11 14

日期:2018-11-4

(2)scanf()和gets()获取的区别:

int main()
{
    char a,b[];
    printf("输入:");
    a=getchar();
    scanf("%s",&b);
    printf("%s",b);
    return 0
}
>>>i am ww
am
>>>ni hao
i
int main()
{
    char a,b[];
    printf("请输入:”);
    a=getchar();
    gets(b);
    printf("%s",b);
    return 0;
}
>>>i am ww
am ww
>>>ni hao
i hao
  • 字符串

“i am happy”双引号内的内容就是一个字符串,而双引号不是,只是来告诉编译器下面的内容为字符串。

C语言没有专门存储字符串的变量类型,所有的字符串都被存储在char类型的数组中,数组是一行连续的多个存储单元,是同类型的数据元素的有序数列。

* 运用printf赋值

比如:

#include<stdio.h>
int main()
{
    int a=212;
    int b;
    b=printf("these are %d characters.",a);
    printf("%d",b)
}
>>>these are 212 characters. 24  #包含空格和字符


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值