当前位置:   article > 正文

c语言中的输出函数

输出函数

c语言中的输出有三个函数,分别作用不同。
在这里插入图片描述

一、srpintf()

srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~

头文件:stdio.h

函数功能:格式化字符串,将格式化的数据写入字符串中。
函数原型:int sprintf(char *buffer, const char *format, [argument]...)

参数:

(1)buffer:是char类型的指针,指向写入的字符串指针;
(2)format:格式化字符串,即在程序中想要的格式;
(3)argument:可选参数,可以为任意类型的数据;

函数返回值:buffer指向的字符串的长度;

例如:

#include <stdio.h>

int main()
{
   char buffer[10];
   char *a = "1234";
   char *b = "5678";

   sprintf(buffer, "%s%s", a,b);
   printf("%s\n", buffer);
   return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

二、fprintf()

3,fprintf是用于文件操作。

原型:int fprintf(FILE *stream,char *format,[argument])

功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件。

例子:

char name[20] = "lucy"; 

 FILE *out;
 out = fopen( "output.txt", "w" );
 if( out != NULL )
 printf( out, "Hello %s\n", name );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

返回值:若成功则返回输出字符数,若输出出错则返回负值。

三、printf()

printf 函数的原型为:

# include <stdio.h>
int printf(const char *format, ...);
/*该函数其中的参数表示为:printf("<格式化字符串>", <参量表>);*/
  • 1
  • 2
  • 3

1、输出控制符

控制符 说明

%d	按十进制整型数据的实际长度输出。

%ld	输出长整型数据。

%md	m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。

%u	输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编程的时候最好不要这么写,因为这样要进行一次转换,使 CPU 多做一次无用功。

%c	用来输出一个字符。

%f	用来输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入。

%.mf	输出实数时小数点后保留 m 位,注意 m 前面有个点。

%o	以八进制整数形式输出,这个就用得很少了,了解一下就行了。

%s	用来输出字符串。用 %s 输出字符串同前面直接输出字符串是一样的。但是此时要先定义字符数组或字符指针存储或指向字符串,这个稍后再讲。

%x(或 %X 或 %#x 或 %#X)	以十六进制形式输出整数,这个很重要。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2、%x、%X、%#x、%#X 的区别

# include <stdio.h>
int main(void)
{
    int i = 47;
    printf("%x\n", i);   
    printf("%X\n", i);   
    printf("%#x\n", i);   
    printf("%#X\n", i);   
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出为:

2f
2F
0x2f
0X2F
  • 1
  • 2
  • 3
  • 4

从输出结果可以看出:如果是小写的x,输出的字母就是小写的;如果是大写的X,输出的字母就是大写的;如果加一个#,就以标准的十六进制形式输出。

最好是加一个#,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!总之,不加#容易造成误解。但是如果输出 0x2f0x2F,那么人家一看就知道是十六进制。而且%#x%#X中,笔者觉得大写的比较好,因为大写是绝对标准的十六进制写法。

3、如何输出 %d、\ 和双引号

printf 中有输出控制符%d,转义字符前面有反斜杠\,还有双引号。那么大家有没有想过这样一个问题:怎样将这三个符号通过 printf 输出到屏幕上呢?

要输出%d只需在前面再加上一个%,要输出\只需在前面再加上一个\,要输出双引号也只需在前面加上一个\即可。程序如下:

# include <stdio.h>
int main(void)
{
    printf("%%d\n");
    printf("\\\n");
    printf("\"\"\n");
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出的结果为:

%d
\
""
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/49720
推荐阅读
相关标签
  

闽ICP备14008679号