gpt4 book ai didi

c++ - fwrite, fread - fread 的问题

转载 作者:行者123 更新时间:2023-11-28 08:23:58 29 4
gpt4 key购买 nike

我有以下代码:

int main()
{
char* pedal[20];
char* pedal2[20];
for (int i = 0; i < 20; i++)
{
pedal[i] = "Pedal";
}
FILE* plik;
plik = fopen("teraz.txt","wb");
for (int i = 0; i < 20; i++)
{
fwrite(pedal[i],strlen(pedal[i]),1,plik);
}
system("pause");
fclose(plik);
plik = fopen("teraz.txt","rb");
for (int i = 0; i < 20; i++)
{
fread(pedal2[i],5,1,plik); //I know for now that every element has 5 bytes
}
for (int i = 0; i < 20; i++)
{
std::cout << pedal2[i] << std::endl;
}
fclose(plik);
system("pause");
return 0;
}

它在阅读时崩溃,第二个问题让我们假设我有结构,我可以在其中保留整数、 float 和 char* 数组,我如何轻松地将整个结构写入文件?具有 sizeof 结构的普通 fwrite 不工作

最佳答案

您的问题是您没有为读取分配缓冲区。事实上行

fread(pedal2[i],5,1,plik)

读到未知的地方。您需要分配内存(在您的情况下,零终止字符串为 5 + 1 个字节)。

pedal2[i] = malloc(5+1);
fread(pedal2[i],5,1,plik)

不要忘记在使用后释放它。

关于c++ - fwrite, fread - fread 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734561/

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