**文件相关函数**

文章详细介绍了C语言中一系列文件操作函数,如fopen用于打开文件、fclose关闭文件、fgetc和fputc进行字符读写、fgets和fputs处理字符串、fread和fwrite读写数据块、ftell获取指针偏移量和fseek设置指针位置,以及sprintf和sscanf用于格式化输入输出。
摘要由CSDN通过智能技术生成

fopen 打开文件

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01=fopen("a.txt","w+");
    if (f01==NULL)
    {
        printf("没有打开文件\n");
    }
    else
    {
        printf("打开文件\n");
    }  
    return 0;
}

fclose 关闭文件

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "w+");
    if (f01 == NULL)
    {
        printf("没有打开文件\n");
    }
    else
    {
        printf("打开文件\n");
    }
    int x = fclose(f01);
    if (x == 0)
    {
        printf("关闭成功\n");
    }
    else
    {
        printf("关闭失败");
    }
    return 0;
}

fgetc 读取一个字符

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "r");
    if (f01 == NULL)
    {
        printf("读取失败\n");
        return 0;
    }
    else
    {
        printf("读取成功\n");
    }
    int x;
    while ((x = fgetc(f01)) != EOF)
    {
        printf("%c", x);
    }
    printf("\n");
    int y = fclose(f01);
    if (y == 0)
    {
        printf("关闭成功\n");
    }
    return 0;
}

fputc 一次写一个字符

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "r");
    FILE *f02 = fopen("b.txt", "w");
    if (f01 == NULL)
    {
        printf("打开失败\n");
        return 0;
    }
    int x =0;
    while((x = fgetc(f01))!=EOF)
    {
        fputc(x,f02);
    }
    fclose(f02);
    fclose(f01);
    return 0;
}

fgets 一次读取一个字符串

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "r");
    if (f01 == NULL)
    {
        printf("打开失败\n");
        return 0;
    }
    char s[100];
    fgets(s, sizeof(s), f01);
    if (s != NULL)
    {
        printf("%s\n", s);
    }
    return 0;
}

fputs 一次写入一个字符串

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "r");
    FILE *f02 = fopen("b.txt", "w");
    if (f01 == NULL)
    {
        printf("打开失败\n");
        return 0;
    }
    char s[100];
    while (fgets(s, sizeof(s), f01) != NULL)
    {
        fputs(s, f02);
    }
    fclose(f02);
    fclose(f01);
    return 0;
}

fread 一次读一块

fwrite 一次写一块

#include <stdio.h>
typedef struct STU
{
    char name[20];
    int age;
} stu;
void write()
{
    FILE *fw = fopen("b.txt", "w");
    if (fw == NULL)
    {
        printf("打开失败\n");
        return;
    }
    stu p[3];
    for (int i = 0; i < 3; i++)
    {
        printf("请输入第%d个学员信息,格式为姓明 年龄\n", i+1);
        scanf("%s %d", p->name, &p->age);
    }
    int num = fwrite(p, sizeof(p), 3, fw);
    fclose(fw);
    printf("OVEN,num:%d\n", num);
}

ftell 获取指针偏移量(测量字节长度)

fseek 设置指针位置

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f = fopen("a.txt", "r");
    fseek(f, 0, 2);
    int len = ftell(f);
    printf("len=%d\n", len);
    return 0;
}

sprintf 格式化输出

#include <stdio.h>
int main(int argc, char const *argv[])
{
    FILE *f01 = fopen("a.txt", "a");
    if (f01 == NULL)
    {
        printf("打开失败\n");
        return 0;
    }
    fprintf(f01, "hello world");
    int x = fclose(f01);
    if (x == 0)
    {
        printf("关闭成功\n");
    }
    return 0;
}

sscanf

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char f[10];
    sscanf("123456","%3s",f);//此处为%3s
    printf("%s\n",f); 
    return 0;
}

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char f[10];
    sscanf("123456", "%s", f); // 此处为%s
    printf("%s\n", f);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值