scanf与printf的用法 您所在的位置:网站首页 essential的用法总结大全 scanf与printf的用法

scanf与printf的用法

2023-11-30 03:34| 来源: 网络整理| 查看: 265

文章目录 前言一、scanf与printf二、使用方法1、printf的使用方法2、scanf的使用方法 总结

前言

学习c语言编程,必不可少的操作就是键盘输入与屏幕输出。今天我想讲讲自己对scanf与printf使用的看法

一、scanf与printf

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

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

二、使用方法 1、printf的使用方法

1.1直接输出想要打印在屏幕上的文字: 例如: printf(“printf的用法\n”); printf(“scanf的用法\n”); 这里的\n代表的是换行。

#include #include int main() { printf("printf的用法\n") ; printf("scanf的用法\n"); system("pause"); return 0; }

1.2、输出整数,以固定长度输出整数: 例如:

#include int main() { int a1=1; int a2=10; int a3=100; printf("a1= %d.\n",a1); printf("a1= %3d.\n",a1); printf("a2= %3d.\n",a2); printf("a3= %3d.\n",a3); return 0; }

其中的%d代表后面的变量,d表示整数,d前面的整数代表该整数输出时会占用多大的空间,一般用于对齐输出。

3、输出小数,保留小数点后固定的位数: 例如:

#include int main() { float a=2.01; printf("a= %f.\n",a); printf("a= %.3f.\n",a); double b=5.01; printf("b= %lf.\n",b); printf("b= %.3lf.\n",b); return 0; }

小数有两种表示方法,一种是float单精度,一种是double双精度,使用起来没有太大的差别,只是double的精度是float精度的两倍,在printf输出时f代表单精度,而lf代表双精度。另外,“.3f”和".3lf"中的点加整数代表需要保留几位小数。

4、输出字符串(较为常用): 例如:

#include int main() { const char* str="Hello World!"; char buf[]="Hello World!"; printf("%s\n",str); printf("%s\n",buf); return 0; }

这里的s就是代表后面的字符串,而后面的变量可以使用字符串的指针或者字符串数组的数组名,结果都是一样的。

2、scanf的使用方法

scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:

# include int scanf(const char *format, ...);

它有两种用法,或者说有两种格式。

1、scanf(“输入控制符”, 输入参数); 功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。 例如

# include int main(void) { int i; scanf("%d", &i); //&i 表示变量 i 的地址,&是取地址符 printf("i = %d\n", i); return 0; }

“输入控制符”和“输出控制符”是一模一样的。比如一个整型数据,通过 printf 输出时用%d输出,通过 scanf 输入时同样是用%d。

要想将程序中的 scanf 行弄明白,首先要清楚的是:我们从键盘输入的全部都是字符。比如从键盘输入 123,它表示的并不是数字 123,而是字符 ‘1’、字符 ‘2’ 和字符 ‘3’。

操作系统在接收键盘数据时都将它当成字符来接收的。这时就需要用“输入控制符”将它转化一下。%d的含义就是要将从键盘输入的这些合法的字符转化成一个十进制数字。经过 %d 转化完之后,字符 123 就是数字 123 了。

第二个要弄清楚的是:&是一个取地址运算符,&后面加变量名表示“该变量的地址”,所以&i就表示变量 i 的地址。&i又称为“取地址i”,就相当于将数据存入以变量 i 的地址为地址的变量中。而以变量 i 的地址为地址的变量就是变量 i。

综上所述,scanf 语句的意思就是:从键盘上输入字符 123,然后%d将这三个字符转化成十进制数 123,最后通过“取地址 i”找到变量 i 的地址,再将数字 123 放到以变量 i 的地址为地址的变量中,即变量 i 中,所以最终的输出结果就是i=123。

2、scanf(“输入控制符非输入控制符”, 输入参数); 例如

# include int main(void) { int i; scanf("i = %d", &i); printf("i = %d\n", i); return 0; }

在 printf 中,所有的“非输出控制符”都要原样输出。同样,在 scanf 中,所有的“非输入控制符”都要原样输入。所以在输入的时候i=必须要原样输入。比如要从键盘给变量 i 赋值 123,那么必须要输入i=123才正确,少一个都不行,否则就是错误。

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

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

一次给多个变量赋值:

int main(void) { int i, j; scanf("%d%d", &i, &j); printf("i = %d, j = %d\n", i, j); return 0; }

首先,scanf 中双引号内除了“输入控制符”之外不要加任何“非输入控制符”。通过键盘给多个变量赋值与给一个变量赋值其实是一样的。比如给两个变量赋值就写两个 %d,然后“输入参数”中对应写上两个“取地址变量”;给三个变量赋值就写三个 %d,然后“输入参数”中对应写上三个“取地址变量”……

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

此外强调一点:当用 scanf 从键盘给多个变量赋值时,scanf 中双引号内多个“输入控制符”之间千万不要加逗号,。

有些人觉得在输入的时候可以用逗号分隔,所以就在“输入控制符”之间用逗号隔开。这样做从程序的角度确实是可以的,但是建议大家不要这样做。在实际编程中这种写法是绝对不允许的,原因有两个: 首先逗号要原样输入的,有几个就要输入几个,少一个或多一个都不行; 其次,也是最主要的原因就是输入法的问题,在 scanf 中是在英文输入法下写的逗号,那么输入的时候如果是中文输入法下的逗号那也是错的。所以用逗号很容易出错。

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

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

总结

以上就是今天要讲的内容,本文仅仅简单介绍了printf以及scanf的使用,而这只是c语言的冰山一角,还有更多有趣的东西等着我们去探索。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有