吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 837|回复: 22
收起左侧

[讨论] 如何用C语言读取判断文件中是否有数据?

[复制链接]
jtwc 发表于 2023-3-25 15:26
本帖最后由 jtwc 于 2023-3-25 15:29 编辑

各位老师,如何用C语言读取判断“1.BLK”文件中是否有数据,如有就返回1,然后清空。谢谢了
下面的代码如何修改?
#include <stdio.h>

int main()
{
        unsigned char buf[] = "0";
        FILE *file = fopen("F:\\1.BLK", "w");
        if (file != NULL)
        {
                fwrite(buf, sizeof(buf), 1, file);
        }
        fclose(file);

                system("pause");
                return 0;
        }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

waiting999 发表于 2023-3-25 16:18
其实可以直接用AI搞代码的,更为便捷
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *fp;
    char buf[1024];
    int ret = 0;

    fp = fopen("1.BLK", "r+");
    if (fp == NULL) {
        printf("open file failed\n");
        return -1;
    }

    if (fgets(buf, sizeof(buf), fp) != NULL) {
        ret = 1;
        rewind(fp);
        memset(buf, 0, sizeof(buf));
        fputs(buf, fp);
    }

    fclose(fp);

    return ret;
}
 楼主| jtwc 发表于 2023-3-25 17:02
本帖最后由 jtwc 于 2023-3-25 17:04 编辑

waiting999 发表于 2023-3-25 16:18
其实可以直接用AI搞代码的,更为便捷
[C] 纯文本查看 复制代码
#include 
[/indent]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        FILE *fp;
//        char buf[1024];
        unsigned char buf[] = "0";
        int ret = 0;

        fp = fopen("1.blk", "r+");
        if (fp == NULL) {
                printf("open file failed\n");
                return -1;
        }

        if (fp != NULL )
        {
                ret = 0;
                fwrite(buf, sizeof(buf), 1, fp);
        }


        fclose(fp);
        system("pause");

        return 0;
}
谢谢老师,我改了一下
 楼主| jtwc 发表于 2023-3-25 17:08
waiting999 发表于 2023-3-25 16:18
其实可以直接用AI搞代码的,更为便捷[mw_shl_code=c,true]#include
#include
#include

老师,判断“1.BLK”文件中是否有数据,如有就返回1,这个咋写呢?
笨蛋の猫猫 发表于 2023-3-25 17:12
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>

int main()
{
    // 打开文件
    FILE *file = fopen("F:\\1.BLK", "r+");
    if (file == NULL)
    {
        printf("无法打开文件\n");
        return 1;
    }

    // 判断文件大小是否为 0
    fseek(file, 0L, SEEK_END); // 移动文件指针到文件末尾
    size_t file_size = ftell(file); // 获取文件大小
    if (file_size > 0)
    {
        // 文件中有数据,返回 1
        printf("文件中有数据\n");
        // 清空文件
        rewind(file); // 将文件指针移动到文件开头
        char zero = 0; // 定义一个 char 类型的变量,值为 0
        fwrite(&zero, 1, sizeof(char), file); // 将 0 写入文件,覆盖原有数据
    }
    else
    {
        // 文件中没有数据,返回 0
        printf("文件中没有数据\n");
    }

    // 关闭文件
    fclose(file);

    system("pause"); // 暂停程序,以便可以看到输出的提示信息
    return 0;
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
jtwc + 1 + 1 我很赞同!

查看全部评分

waiting999 发表于 2023-3-25 17:21
jtwc 发表于 2023-3-25 17:08
老师,判断“1.BLK”文件中是否有数据,如有就返回1,这个咋写呢?

就是小菜鸡罢了,别叫老师,找一个能用的AI这种还是比较快的,只要需求提的对
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("1.BLK", "r");

    if (fp == NULL)
    {
        printf("无法打开文件\n");
        exit(1);
    }

    c = fgetc(fp);

    if (c == EOF)
    {
        printf("文件为空\n");
        fclose(fp);
        return 0;
    }
    else
    {
        printf("文件不为空\n");
        fclose(fp);
        return 1;
    }
}
waiting999 发表于 2023-3-25 17:23
jtwc 发表于 2023-3-25 17:08
老师,判断“1.BLK”文件中是否有数据,如有就返回1,这个咋写呢?

[C] 纯文本查看 复制代码
#include <stdio.h>

int main()
{
    FILE *fp;
    char buffer[1024];
    int length;

    fp = fopen("1.BLK", "rb");
    if (fp == NULL)
    {
        printf("无法打开文件\n");
        return 0;
    }

    length = fread(buffer, 1, sizeof(buffer), fp);
    if (length == 0)
    {
        printf("文件中没有数据\n");
    }
    else
    {
        printf("文件中有数据\n");
    }

    fclose(fp);

    return 0;
}
 楼主| jtwc 发表于 2023-3-25 17:29
笨蛋の猫猫 发表于 2023-3-25 17:12
[mw_shl_code=c,true]#include
#include

谢谢老师,不过有个小问题,文件中没有数据,也显示文件中有数据,不能准确判断?
 楼主| jtwc 发表于 2023-3-25 17:33
waiting999 发表于 2023-3-25 17:23
[mw_shl_code=c,true]#include

int main()

谢谢老师,不过有数据也不能清除
 楼主| jtwc 发表于 2023-3-25 17:40
笨蛋の猫猫 发表于 2023-3-25 17:12
[mw_shl_code=c,true]#include
#include

老师,能不能判断文件中是否有“OI2305”的字符,如有就返回1,清除“OI2305”的字符?谢谢了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表