jtwc 发表于 2023-3-25 15:26

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

本帖最后由 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搞代码的,更为便捷#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *fp;
    char buf;
    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搞代码的,更为便捷#include

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
      FILE *fp;
//      char buf;
      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搞代码的,更为便捷#include
#include
#include


老师,判断“1.BLK”文件中是否有数据,如有就返回1,这个咋写呢?

笨蛋の猫猫 发表于 2023-3-25 17:12

#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;
}

waiting999 发表于 2023-3-25 17:21

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

就是小菜鸡罢了,别叫老师,找一个能用的AI这种还是比较快的,只要需求提的对
#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,这个咋写呢?

#include <stdio.h>

int main()
{
    FILE *fp;
    char buffer;
    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
#include
#include



谢谢老师,不过有个小问题,文件中没有数据,也显示文件中有数据,不能准确判断?

jtwc 发表于 2023-3-25 17:33

waiting999 发表于 2023-3-25 17:23
#include

int main()


谢谢老师,不过有数据也不能清除

jtwc 发表于 2023-3-25 17:40

笨蛋の猫猫 发表于 2023-3-25 17:12
#include
#include



老师,能不能判断文件中是否有“OI2305”的字符,如有就返回1,清除“OI2305”的字符?谢谢了
页: [1] 2 3
查看完整版本: 如何用C语言读取判断文件中是否有数据?