小编arp*_*314的帖子

在 C 中创建一个函数来读取文件但它无限循环

我基本上想打印出我制作的文件中的所有行,但它只是一遍又一遍地循环回到开始,基本上是因为我在函数中设置了fseek(fp, 0, SEEK_SET);这部分,但我知道否则我将如何放置它以完成所有其他操作行我基本上每次都回到开始。

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

char *freadline(FILE *fp);

int main(){

    FILE *fp = fopen("story.txt", "r");

    if(fp == NULL){
        printf("Error!");
    }else{
        char *pInput;
        while(!feof(fp)){
            pInput = freadline(fp);
            printf("%s\n", pInput); // outpu 
        }   
    }
    
    return 0;
}

char *freadline(FILE *fp){
    int i;
    for(i = 0; !feof(fp); i++){
        getc(fp);
    }
    fseek(fp, 0, SEEK_SET); // resets to origin (?)
    char *pBuffer = (char*)malloc(sizeof(char)*i);
    pBuffer = fgets(pBuffer, i, fp);

    return pBuffer;
}

Run Code Online (Sandbox Code Playgroud)

这是我目前的工作

c

2
推荐指数
1
解决办法
103
查看次数

标签 统计

c ×1