printf/sprintf/fprintf

在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;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值