初识C语言:与计算机的交流之输入与输出(scanf和printf)

目录

一、printf的使用:

1.1 打印的类型

 1.2 转换说明符的含义

1.3 printf的修饰 

二、scanf的使用

2.1 scanf的格式

2.2 scanf的注意事项

2.3 scanf的返回值

总结


一、printf的使用:

printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是: printf(“格式化字符串”, 变量)。在使用前需要注意的是该命令被定义在stdio.h头文件

1.1 打印的类型

例如:

 int main(void)
    {
        int a;
        float b;
        double c;
        a = 120;
        b = 43.21;
        c = 43.21;
        printf("hello\n");//直接打印想要出现在屏幕上的内容
        printf("%d\n",a);//打印整型变量内容
        printf("%f\n",c);//打印浮点型(小数)内容
        printf("%d,%f\n",a,b);//打印多个变量数据
        printf("a = %d,b = %f\n",a,b);//占位符
        printf("%d\n",120);//打印整型常量
        printf("%d,%f\n",120,34.56);//打印不同类型的常量
        printf("%d\n",a+100);//打印表达式结果
        printf("%d%%\n",120);//打印出“%”
        return 0;
    }

编译结果如下: 

 1.2 转换说明符的含义

    %d    有符号十进制整数
    %o    无符号八进制整数
    %u    无符号十进制整数
    %x    无符号十六进制整数
    %c    一个字符
    %s    字符串
    %f    十进制计数法的浮点数
    %e    E-计数法的浮点数
    %p    指针

1.3 printf的修饰 

例如:

  #include <stdio.h>
 
    int main(void)
    {
        int a = 123;
        float b = 12.34;
 
        printf("%7d\n",a);  //7-表示输出的数据最小的字段宽度为7
        printf("%07d\n",a);  //0-表示如果实际宽度不够7则在左边用0填充
 
        printf("%-7d\n",a);  //负号-表示左对齐
 
        printf("%.2f\n",b);  //.2 - 表示保留小数后2位
        printf("%10.2f\n",b);  //.2 - 表示保留小数后2位
 
        printf("%d\n",-129);
        printf("%+d\n",+120);  //+ -在数据前显示+号
 
 
        char c = 'A';
        short s = 10; 
        long l = 100;
        long long ll = 10000;
 
        printf("%c\n",c);
        printf("%hhd\n",c);  // %hhd ---输出char型整数
        printf("%hd\n",s);   // %hd --- 输出short型整数
        printf("%ld\n",l);  // %ld --- 输出long型整数
        printf("%lld\n",ll);// %lld --- 输出long long型整数
 
        return 0;
    }

编译结果如下

注: 

 1. 转换说明符和变参的个数要相同
 2. 转换说明符和变参的类型要一致
 3. 输出的变参可以是常量,变量,表达式等
 4. 输出float数据和double数据时,都用%f 
 5. 输出%时,需要用%%

二、scanf的使用

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。

2.1 scanf的格式

 例如:

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

编译结果如下 :

2.2 scanf的注意事项

错误示例:

在 printf 中,所有的“非输出控制符”都要原样输出。同样,在 scanf 中,所有的“非输入控制符”都要原样输入。所以在输入的时候“,”必须要原样输入。少一个都不行,否则就是错误。

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

 

所以 scanf 中%d后面也没有必要加\n,因为在 scanf 中\n不起换行的作用。它不但什么作用都没有,你还要原样将它输入一遍。

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

无法编译 

所以在 scanf 的使用中一定要记住:双引号内永远都不要加“非输入控制符”。除了“输入控制符”之外,什么都不要加,否则就是自找麻烦。而且对于用户而言,肯定是输入越简单越好。

但是需要注意的是,虽然 scanf 中没有加任何“非输入控制符”,但是从键盘输入数据时,给多个变量赋的值之间一定要用空格、回车或者 Tab 键隔开,用以区分是给不同变量赋的值。

最后再次强调:scanf“输入参数”的取地址符&千万不要忘了。这是初学者经常犯的错误。而 printf 中的“输出参数”是不带取地址符的,不要混淆了。

另外注意无论是printf还是scanf,使用时在顺序,个数以及数据类型都要一一对应,这种错误编译时不会报错!

2.3 scanf的返回值

在刷题的时候经常会遇到输入多组数据,但又不清楚具体是需要几组,不知道如何停止循环。

这就要用到scanf的返回值了:

    int main(void)
    {
        int a;
        float b;
        int ret;
 
        printf("请输入a和b:");
        ret = scanf("%d%f",&a,&b);
        printf("ret = %d\n",ret);
        printf("a = %d,b = %.2f\n",a,b);
 
        return 0;
    }

所以想要当不输入的时候结束可以使用:

while(scanf("%d",&a)!=EOF)

{

        表达式;

来表示返回值为零,也就是停止输出。

总结

我们学习和写博客就是输入和输出的过程,正如scanf和printf一样,输入了,自然需要输出才是完整的学习~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值