函数printf和scanf

一.printf

1. pintf的使用:printf();

printf("hello world!");

        printf()的作用是将文本参数输出到屏幕,其名字中的“f”表示format(格式化),表示可以定制输出文本的格式。

#include<stdio.h>
int main()
{
    printf("打印\n");
    return 0;
}

        值得注意的是,printf()不会自动换行,运行结束后光标会停留在输出结束的位置,如果想要让光标换到下一行,可以在输出文本末尾添加换行符\n

2.printf几种限制格式

        限定宽度:

        printf()默认是右对齐的,通过限定最小宽度,输出文本时会自动在左边补充空格。

#include<stdio.h>
int main()
{
	int a = 1234;
	printf("%6d\n", a);//输出为"  1234"
	return 0;
}

         另外,如果想使输出文本改为左对齐,可以在占位符的%后面插入一个 

#include<stdio.h>
int main()
{
	int a = 1234;
	printf("%-6d\n", a);//输出为"1234  "
	return 0;
}
        限定小数位数:

        printf()输出浮点数时,默认保留小数点后两位,如果想限定小数位数,可以在占位符的%后加.*实现,其中*为想被保留的小数点位数。如:%.3f表示保留小数点后三位。

#include<stdio.h>
int main()
{
	float a = 3.1415926;
	printf("%.3f", a);//输出结果为"3.142"
	return 0;
}
        限定输出部分字符串

        这个用法与限定小数位数相同,作用是将默认的输出全部字符改为输出指定位数字符

#include<stdio.h>
int main()
{
	printf("%.3s","abcdefg");//输出结果为"abc"
	return 0;
}
        显示正负号

        默认情况下,printf不对正数显示+号,只对负数显示-号,如果想显示正号,可以在占位符的%号后加+

#include<stdio.h>
int main()
{
	printf("%+d",123);//输出结果为"+123"
	return 0;
}

二.scanf

1.scanf的使用:scanf()

        scanf()函数会读取用户的键盘输入并放入缓存区,当用户按下回车键后,scanf()会处理缓存区的数据,然后存入变量

#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	return 0;
}

上面示例中的&a表示将键盘输入的整数存入变量a

注意:scanf()函数必须提前知道用户输入的数据类型才能处理变量


2.scanf的读取

        scanf()在处理数值占位符时会自动过滤空白字符,包括空格、制表符、换行符等

int main()
{
	int a = 0;
	float b = 0.0f;
	scanf("%d%f", &a,&b);//用户输入"     12.56e6#/';565"
	printf("%d\n", a);//输出"12"
	printf("%f\n", b);//输出"560000.000000"
	return 0;
}

        如果用占位符%c则会读取开头的空格

#include<stdio.h>
int  main()
{
	char a;
	scanf("%c", &a);//输入"   ab    cde"
	printf("%c---------", a);//输出" ---------"
	return 0;
}

        如果用占位符%s则不会读取开头空格,且读到空格后读取结束

#include<stdio.h>
int  main()
{
	char arr[10];
	scanf("%s", &arr);//输入"   abc    cde"
	printf("%s---------", arr);//输出"abc---------"
	
	return 0;
}

3.scanf的返回值

        scanf函数的返回值是一个整数,表示成功读取的变量个数。

下面可以用一个代码进行测试

#include<stdio.h>
int main()
{
	int num;
	int a = scanf("%d%d%d%d", &num, &num, &num, &num);//用户输入"123 456 789 666"
	printf("%d\n", a);//输出结果为"4"
	return 0;
}

        特殊地:如果发生了读取错误或读取到了文件结尾,则返回EOF(值为-1)

4.赋值忽略符

        在占位符%后加一个*号,可以将读取的数据丢弃,可用于删除无用的输入数据

#include<stdio.h>
int  main()
{
	int year, month, day;
	scanf("%d%*c%d%*c%d", &year, &month, &day);//输入"2023.10.27"
	prinf("%d-%d-%d", year, month, day);//输出"2020-10-27"
	return 0;
}

最后,感谢大家观看!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值