gpt4 book ai didi

c - 未处理的异常,将信息写入文件C语言

转载 作者:行者123 更新时间:2023-11-30 15:48:56 25 4
gpt4 key购买 nike

这就是我想做的,

我有一个包含信息的文件。我正在尝试重写它,以便在每一行之前,都会出现行号。

我想到的基本想法是这样的:

while i haven't reached the end of the file:
save the first line of the file (100 characters or until null is reached) in str
go back to the file, and write "line number" and then the info in str.
now str takes the next 100 chars...rinse and repeat.

实际代码:

void add_line_number(FILE* f1)
{
char str[100];
int i=1;
fseek(f1,0,SEEK_SET);
do
{
fgets(str,100,f1);
fprintf(f1,"%d %s",i,str);
i++;
f1+=strlen(str);
}while(strlen(str));
}

收到错误:论文 4.exe 中 0x77e78dc9 处出现未处理的异常:0xC0000005:访问冲突写入位置 0xfffff204。

最佳答案

一般来说,您无法让它正常工作。在行的开头添加行号,然后将其写回到文件中,将导致第一行的末尾覆盖第二行的开头。您需要将修改后的行写入单独的文件,然后在完成后覆盖原始文件。或者,将文件的所有行存储在内存中,然后在第二遍中覆盖该文件,但这对于大文件来说会出现问题。

关于c - 未处理的异常,将信息写入文件C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530015/

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