gpt4 book ai didi

c - 为什么以下不将数组内容写入文件

转载 作者:行者123 更新时间:2023-11-30 14:26:02 24 4
gpt4 key购买 nike

我有一个具有这种结构的位数组

bit_table_[ROWS][COLUMNS];

我尝试将其写入文件

FILE * f; 
f = fopen("D:\\test_bf\\bf_file", "a+b");
if (f != NULL)
{
fwrite(bit_table_, sizeof(bit_table_), 1, f);
fclose(f);

}
else
{
std::cout<<"File could not be opend.";
printf("\tError %d\t\t%s", errno,strerror(errno));
}

写入成功,但文件大小为0kb,内容为空。我期望文件大小以 MB 为单位。

我在另一个程序中使用了相同的代码并且按预期工作。

这有什么问题吗?

编辑:

这是我在函数中实际使用上述代码的方式

void write_to_file(unsigned char bit_table_[][COLUMNS])
{


FILE * f;
f = fopen("D:\\test_bf\\chunk_bf_file.txt", "a+b");
if (f != NULL)
{

fwrite(bit_table_, sizeof(bit_table_), 1, f);
fclose(f);


}
else
{
std::cout<<"File could not be opend.";
printf("\tError %d\t\t%s", errno,strerror(errno));
}


}

其名称如下:

write_to_file(bit_table_);

这是它的声明:

static unsigned char    bit_table_[ROWS][COLUMNS];

最佳答案

改变

  fwrite(bit_table_, sizeof(bit_table_), 1, f);

  fwrite(bit_table_, sizeof(bit_table_[0][0]), ROWS*COLUMNS, f);

你应该没事

关于c - 为什么以下不将数组内容写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9699559/

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