844616771 发表于 2021-9-14 10:31:04

C语言打开文件内有数据

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
        FILE* fp = NULL;
        fp = fopen("file.txt", "ab+");
       
        if(feof(fp))
        {
                printf("文件为空");
       }
       else if(!feof(fp))
       {
               printf("文件内有东西");
       }
       
        fclose(fp);
        return 0;
}

我的放在桌面然后桌面上没有这个文件,他直接创建了一个之后打卡里面就有数据。

2736946915 发表于 2021-9-14 11:48:01

所以你想说什么...问题

jhq999 发表于 2021-9-14 12:21:43

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
所以你认为ab+会不会创建文件?
所以编程要勤动手

jackz007 发表于 2021-9-14 12:23:04

本帖最后由 jackz007 于 2021-9-14 12:40 编辑

#include <stdio.h>

int main(void)
{
      FILE * fp                              ;
      size_t k                                 ;
      if((fp = fopen("file.txt" , "r"))) {
                fseek(fp , 0 , 2)                ; // 把文件指针移动到文件尾部
                k = ftell(fp)                  ; // 得到文件尺寸
                if(! k) printf("文件为空\n")   ; // 如果文件尺寸为 0
                else printf("文件不空\n")      ; // 否则
                fclose(fp)                     ;
      } else {
                fprintf(stderr , "文件不存在\n") ;         
      }
}

routty 发表于 2021-9-14 12:36:37

没有数据当前指针是不是就是文件尾?

jhanker 发表于 2021-9-14 14:23:14

routty 发表于 2021-9-14 12:36
没有数据当前指针是不是就是文件尾?

routty 你是真不知道还是假不知道?

routty 发表于 2021-9-14 15:02:22

好久没用,有点忘了

jhanker 发表于 2021-9-14 18:04:54

routty 发表于 2021-9-14 15:02
好久没用,有点忘了

谦虚了
页: [1]
查看完整版本: C语言打开文件内有数据