C语言 printf格式及应用

C语言 printf格式及应用

函数原型: int printf(char * format[,argument,…]);

函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出错,则返回负数。

一、规则

1.转换说明符

%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和double)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数<?xml:namespace prefix = st1 />() e.g. 0x1234
%p 指针
%s 字符串
%% “%”

2.标志
左对齐:“-” e.g. “%-20s”
右对齐:“+” e.g. “%+20s”
空格:若符号为正,则显示空格,负则显示"-" e.g. "% "
#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;
对e,g,f 类当结果有小数时才给出小数点。

3.格式字符串(格式)
[标志][输出最少宽度][.精度][长度]类型
“%-md” :左对齐,若m比实际少时,按实际输出。
“%m.ns”:输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
e.g. “%7.2s” 输入CHINA
  输出" CH"
“%m.nf”:输出浮点数,m为宽度,n为小数点右边数位
e.g. “%” 输入3852.99
输出3853.0
长度:为h短整形量,l为长整形量

二、应用
目标:创建一个.c文件,并写入Hello

#框架
#include "public.h"
#define ROOT
 
int main(void)
{
    FILE *fp;
	fp = fopen("test.c","w+");   //name test.c;"w+" 可读可写
    fprintf(fp,"%s","Hello \n");
	 return 1;
}

细化

#include “public.h”
#define ROOT

int main(void)
{
FILE *fp,*fp1;
int x;
// E:\vscode\Project\FILESYSTEM\CreateFile\test.c
// E:\vscode\Project\FILESYSTEM\CreateFile\test.c

//unsigned char name[100];

// printf(“请输入文件的路径及名称:\n”);

// 输入文件的位置 与名称
// scanf(“%s”,name);

//  判断 要创建的文件是否存在
//  r:打开一个用于读取的文件。该文件必须存在。
// fp==fopen(name,"r");
fp = fopen("test.c","r");

if(fp!= NULL)   
{   
    //  如果文件存在则 追加一行 
     printf("如果test.c 文件存在 则成功打开!\n");
     
     fp=fopen("test.c","a+");
     fprintf(fp,"%s","Hello world!\n");
}else{   
    
    //   如果文件不存在  则创建文件  test.c
    printf("如果test.c文件不存在 则执行此块代码!\n");

    //   创建名为test.c文件,"w"该文件可写
    //  w:创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。
     fp1 = fopen("test.c","w");    
     
     if(fp1!=NULL)    //  文件已经创建  则加入一行代码
     {   
         fprintf(fp1,"%s","#include <stdio.h> \n");
         
     }else{         
      //  文件没有创建则
      //  把一个描述性错误消息输出到标准错误 stderr    void perror(const char *str)
     perror("Error: ");
     return(-1);
     }
}


//  关闭流 fp。刷新所有的缓冲区。
fclose(fp);
 return 1;

}

待更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值