【C语言】文件操作

printf & scanf格式化输入输出

printf
%[flags][width][.prec][hlL]type

flags含义
-左对齐(默认右对齐)
+在前面放+(一般用来表示正数)
(space)正数留空
0用0填充
#include <stdio.h>

int main()
{
        printf("%09d\n",666);
        printf("%- d\n",666);
        return 0;
}

在这里插入图片描述

width或prec含义
number最小字符数
*下一个参数是字符数
.number小数点后的位数
.*下一个参数是小数点后的位数
#include <stdio.h>

int main()
{
        printf("%09.3d\n",666);
        printf("%*.*d\n",9,3,666);
        return 0;
}

在这里插入图片描述

[hlL]类型修饰符含义
hh单个字节
hshort
llong
lllong long
Llong double
type用于
i/dint
uunsigned int
o八进制
x(X)十六进制(字母部分大写)
a、A十六进制浮点
f、Ffloat,6
g、Gfloat
e、E指数
cchar
s字符串
p指针
n读入/写出的个数
#include <stdio.h>

int main()
{
        int num;
        printf("%djj%n\n",666,&num);
        printf("%d\n",num);
        return 1;
}

在这里插入图片描述

scanf
%[flags]type

flag含义
*跳过
数字最大字符数
hhchar
hshort
llong/double
lllonglong
Llong double
type含义
dint
i整数(各种进制)
uunsigned int
o八进制
x十六进制
a,e,f,gfloat
cchar
s字符串
p指针
[…]所允许的字符

scanf和printf的返回值

#include <stdio.h>

int main()
{
        int num;
        int i1 = scanf("%d",&num);
        int i2 = printf("%d\n",num);
        printf("%d:%d\n",i1,i2);
        return 0;
}

在这里插入图片描述
printf的字符数包括后面的\n

文件输入输出

重定向>.<
假如我们用的是scanf和printf做输入输出,则可以使用重定向进行文件的读写

#include <stdio.h>

int main()
{
        int num;
        int i;
        for (i=0;i<3;i++){
                scanf("%d",&num);
                printf("%d\n",num);
        }
        return 0;
}

在这里插入图片描述

FILE

FILE* fopen(const char * restrict path,const char * restrict mode) 打开文件
int fclose(FILE * stream)
fscanf(FILE*,…) 文件读
fprintf(FILE*,…) 文件写

以只读方式打开文件

#include <stdio.h>

int main()
{
        FILE* fp = fopen("123.in","r");
        if (fp){
                int num;
                fscanf(fp,"%d",&num);
                printf("%d\n",num);
                fclose(fp);
        } else {
                printf("file is not exist\n");
        }
        return 0;
}

在这里插入图片描述

fopen模式参数介绍
r只读方式打开
r+读写方式打开,从文件头开始
w只写方式打开,不存在就新建,存在则清空
w+读写方式打开,不存在就新建,存在则清空
a打开追加,不存在就新建,存在则从文末添加
…x只新建,如果文件已存在则不能打开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值