编程学习

C语言中printf和gets函数的实用技巧

2018-01-25  本文已影响7人  悟空学编程

Printf函数输出的格式与方法:

想要一起学习交流,或者系统学习c++的可以加553014383,邀请码:悟空,裙内有众多资源及解答老师。

1、输出数字的时候存在宽度和精度,那对于数字而言,输出数字有如下几种情况:

int a=456;

printf("$%d$",a);

此时输出$456$

printf("$%5d$",a);

此时输出整型变量的宽度为5,比变量a的宽度大,此时输出是$[][]456$,[]表示的是空格,为了清楚地看到空格,用[]代替空格。当输出宽度比变量宽度要大时,输出自动右对齐。

Printf("$%2d$",a);

此时输出为$456$,当宽度比变量a的宽度小的时候,正常输出整型变量。

以下的语句加入精度的概念。

printf("$%5.5d$",a);

此时的输出为$00456$,对于整数而言,加入精度的概念就是在数字右边补0,使数字自身位数加上0的位数等于精度。

printf("$%4.5d$",a);

此时的输出为$00456$,此时输出的结果与上一条语句相同,对于整型数字,当精度大于宽度时以精度优先。

2、如何将输出的右对齐和左对齐

在%后加入-,这样输出就从右对齐变成左对齐。由于默认输出是右对齐,所以在%后面加入+是没有作用的。如果在%后加入+,加好会在输出中显示。

3、输出字符串的效果,宽度和精度同样也适用于字符串。

gets()函数的用法:

由于scanf函数遇到空格后就停止输入了,如果我们需要输入一句话的话,那么我们就要尝试其他的函数例如gets()函数。

1、原型函数为char *gets(char*buffer),返回一个指向char的指针,返回的指针与传递给他的指针是同一个指针。

例子:

char name[20];

gets(name);

printf(“%s”,name);

此时在控制界面中输入hello world,输出将会是hello world。

上例同时也可以写成:

char name[20];

char *ptr;

ptr=gets(name);

printf(“%s”,name);

printf(“%s”,ptr);

此时两句话输出的都是hello world,从而证明ptr的指针就是赋给gets函数的指针。但是gets()函数有一个缺点,当输入的字符串的长度大于申请的空间时,会造成空间越界,此时在函数执行结束释放空间时会报错。

因此,我们引出fgets()函数,这个函数是gets()函数的文件读写版本,它的原型函数为

char *fgets(char *buffer, int n ,FILE *stream)

第一个参数可以是变量的地址,第二个为读取字符的最大个数,第三个是需要读取的文件。当我们要从键盘进行读写时,我们可以将标准输入流的指针赋给第三个参数,实现使用fgets()从键盘进行读写。

puts()函数:

例子:

char name[20];

char *ptr;

ptr=gets(name);

puts(name);

puts(“%s”,ptr);

put是需要遇到’’才会输出的,因此通过字符串数组遍历赋值时,最后不要忘记加’’

上一篇下一篇

猜你喜欢

热点阅读