gpt4 book ai didi

c - 调用 fgets 时出现段错误

转载 作者:行者123 更新时间:2023-12-02 22:28:39 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的程序来从纯文本列表中列出的文件中读取数据,但是当我尝试在我的 processFile 函数中调用 fgets() 时,我一直遇到段错误。

如果我只是简单地调用类似 processFile("file.txt") 的东西,它就不会发生,但当我尝试通过我的 processList 函数调用 processFile 时,它​​就会发生。

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

void processFile (char *file)
{
char line[256];
FILE* pgmFile;
pgmFile = fopen(file, "r");
fgets(line, 200, pgmFile); // Seg fault here
fclose(pgmFile);
}

// Runs processFile on every file listed in list
void processList (char *list)
{
FILE *pgmList;
pgmList = fopen(list, "r");

char line[256];

while (fgets(line, 255, pgmList) != NULL) {
processFile(line);
}
fclose(pgmList);
}

int main ()
{
processList("downgesture_test1.list");
}

最佳答案

尝试检查 fopen 的返回值。如果它是 NULL 怎么办?因为您的“文件名”很可能有尾随 \n

关于c - 调用 fgets 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com