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

维克拉姆·辛格

该代码应该将它在 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);

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打印到标准输出并写入文件时,C字符串中的垃圾值

来自分类Dev

在C ++ UNIX中异步写入文件

来自分类Dev

C ++中不规则的文件写入性能

来自分类Dev

在C中写入文件多线程

来自分类Dev

求和C ++返回的垃圾值

来自分类Dev

从c中的文件填充指针数组

来自分类Dev

如何在C ++中写入文件中间?

来自分类Dev

用c ++写入文件

来自分类Dev

在C ++中的结构中显示垃圾值

来自分类Dev

从C中的文件读取和写入

来自分类Dev

C ++中迭代器值的垃圾值

来自分类Dev

pop_back中的垃圾值,C ++中的双链表

来自分类Dev

在写入txt文件时如何增加变量的值C#

来自分类Dev

C + +中的fopen函数写入文件

来自分类Dev

写入C中文件夹中的文件

来自分类Dev

将C中的调试消息写入文件?

来自分类Dev

从C中的数组打印垃圾值而不是最大值

来自分类Dev

处理以块方式写入C中的文件

来自分类Dev

写入后文件中的垃圾值

来自分类Dev

从C中的文件填充指针数组

来自分类Dev

指针向量中的C ++垃圾值

来自分类Dev

验证UWP C#中的文件写入

来自分类Dev

编写系统调用C,用垃圾填充文件

来自分类Dev

结构向量中的垃圾值 C++

来自分类Dev

将 9 位值的流作为字节写入 C 中的文件

来自分类Dev

无法读取在 C 中写入文件的行

来自分类Dev

C、读取文本文件时字符串中的垃圾/垃圾值

来自分类Dev

在 C# 中读取 C++ ofstream 写入的文件

来自分类Dev

在文件中写入时传递值:C++