如何用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;
}
其实可以直接用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: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;
}谢谢老师,我改了一下 waiting999 发表于 2023-3-25 16:18
其实可以直接用AI搞代码的,更为便捷#include
#include
#include
老师,判断“1.BLK”文件中是否有数据,如有就返回1,这个咋写呢? #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;
} 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;
}
} 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;
} 笨蛋の猫猫 发表于 2023-3-25 17:12
#include
#include
谢谢老师,不过有个小问题,文件中没有数据,也显示文件中有数据,不能准确判断? waiting999 发表于 2023-3-25 17:23
#include
int main()
谢谢老师,不过有数据也不能清除 笨蛋の猫猫 发表于 2023-3-25 17:12
#include
#include
老师,能不能判断文件中是否有“OI2305”的字符,如有就返回1,清除“OI2305”的字符?谢谢了