gpt4 book ai didi

c - 在c中写入文件,垃圾值被填充

转载 作者:行者123 更新时间:2023-11-30 18:47:39 25 4
gpt4 key购买 nike

代码应该将 fileReceived 中获得的任何数据附加到 a.txt 文件中,但它会填充随机值。(当然也不是那么随机,但绝对不是正确的值)。我错过了什么吗?

File *fp;
fp = fopen("a.txt",+a);
while(1)
{
fileReceived =...// getting char array of 1024 size
fwrite(fileReceived,1,sizeof(fileReceived),fp);

if(padding!=0)
{
fclose(fp);
break;
}
}

最佳答案

即使您没有显示正确的部分,也可以猜测(但不能是其他方式):

fileReceived =...// getting char array of 1024 size
fwrite(fileReceived,1,sizeof(fileReceived),fp);

fileReceived 必须是数据指针,因此 sizeof(fileReceived) 不是 1024,而是 4 或 8,具体取决于您的架构(因为不可能将一个数组分配给另一个数组)

您在循环中写入的数据太少,并且您的文件获取了第一个值,但没有获取最后一个值。既然您知道大小,请像这样修复它:

int size = 1024;
...
fwrite(fileReceived,1,size,fp);

如果数据大小不同,您必须从向您提供指针的任何函数中获取大小信息,否则您将得到未定义的行为

关于c - 在c中写入文件,垃圾值被填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721780/

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