在C语言下,函数输出的时候会有三个函数可以实现这一功能,它们分别是printf、sprintf、fprintf。他们的函数原型是:
#include<stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int sprintf(char *str, const char *format, ...);从参数上我们可以看到不经常用的两个输出函数sprintf和fprintf它们两个分别是输出到给定的字符串和给定的文件中。下面我们来看看它们在程序中的使用方法。 在这里我们最熟悉的是printf,使用它我们经常是输出字符串或者数字,例如:
#include<stdio.h> int main() { char *str = "hello c!"; char ch = 'o'; int num = 666; printf("%s %c %d\n",str,ch,num); return 0; }会输出:hello c! o 666。 printf使用的格式字符如下: d:以十进制输出; o:以八进制输出; x:以十六进制输出; u:以无符号形式输出整形值; c:输出一个字符; s:输出字符串; f:输出一个浮点数; e:以科学技术法输出浮点数; g:输出%f和%e中占用为数较短的一个; -:输出时左对齐,默认是右对齐,如:printf("%-13s\n",hello); 在有的时候我们在输出%d的时候位数不够我们会用长整形%ld的形式输出,除了一些古老的机子,一般机器长整型long字节尾数不小于整形,短整型short类型字节位数不大于整形。 那其他两个输出函数是干什么用的呢?我们下面来看看: 1、sprintf的简单代码实现:
#include<stdio.h> int main() { char *str = "hello linux!"; char st[256]; sprintf(st, str);//将str指针所指向的字符串输出到数组st的空间 prinft("str = %s\n",str); printf("st = %s\n",st); return 0; }这是在Linux系统下的gcc编译后的Test可执行c文件。 2、fprintf函数简单代码使用:
#incldue<stdio.h> #include<unistd.h> #include<fcntl.h> int main() { char *str = "hello world!"; char st[256]; FILE fd = fopen( "t.txt", O_RDWR | 0666); fprintf(fd,str); fgets(st,256,fd); printf("st = %s\n",st); close(fd); return 0; } // #incldue<stdio.h> #include<unistd.h> #include<fcntl.h>//file control int main() { int fd = open("a.txt", O_RDWR | 0666); close(1); dup(fd); printf("Hello Linux!");//output file a.txt return 0; }