gpt4 book ai didi

c - 读取文件时出现段错误

转载 作者:行者123 更新时间:2023-12-04 11:20:08 27 4
gpt4 key购买 nike

我的文件看起来像:

123456789

我的代码给出了段错误:

#include <stdio.h>

int main(){

FILE *f;
char ch[5];
f = open("a.txt", "r");
fgets( ch, 4, f);
ch[4] = NULL;
printf("%s", ch); //Fixed
return 0;
}

我是一个绝对的初学者。我究竟做错了什么。我的目标是使用 fgets 读取文件的前 4 个字符。

最佳答案

你会想做的

    printf("%s", ch);

对于%格式,参数是指向字符的指针;通过按值传递单个字符,你告诉 printf 将该字符的 ASCII 值解释为一个指针,这会让你大吃一惊;即,如果字符是 1,即 ASCII 49,那么它会在内存中的字节 49 中查找字符串 —— 往下看通常是 verboten .

但其次,我看到您正在调用 open() 而不是 fopen()。您必须使用 fopen() 否则您将无法获得预期的 FILE*

这两者都可能单独导致段错误——您需要同时修复它们。

关于c - 读取文件时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124198/

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