gpt4 book ai didi

c - 用 C 将结构写入文件

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

我正在读取一个结构并将其写入一个不可读的文本文件中。我必须将可读数据从结构对象写入文件中。

这是我的代码的更多细节:

我的代码可以读取项目名称和代码列表并将其写入文件(file.txt)。该代码使用链表概念来读取和写入数据。数据存储到结构体对象中,然后使用 fwrite 写入文件。

代码运行良好。但我需要将可读数据写入文本文件。

现在 file.txt 如下所示,

㵅㡸䍏䥔䥆㘸䘠㵅㩃䠀\䵏㵈䑜㵅㡸䍏䥔䥆㘸䘠\㵅㩃䠀䵏㵈䑜㵅㡸䍏䥔䥔㘸䘠㵅㩃䠀䵏㵈\䑜㵅㡸䍏䥔䥆㘸䘠㵅㩃䠀䵏㵈䑜㵅㡸䍏䥔\䥆㘸䘠㵅㩃䠀䵏㵈

我期望文件应该是这样的,

铅笔aaaa
表bbbb
笔cccc
笔记本nnnn

这是代码片段:

struct Item
{
char itemname[255];
char dspidc[255];
struct Item *ptrnext;
};

// Writing into the file
printf("\nEnter Itemname: ");
gets(ptrthis->itemname);
printf("\nEnter Code: ");
gets(ptrthis->dspidc);
fwrite(ptrthis, sizeof(*ptrthis), 1, fp);

// Reading from the file
while(fread(ptrthis, sizeof(*ptrthis), 1, fp) ==1)
{
printf("\n%s %s", ptrthis->itemname,ptrthis->dspidc);
ptrthis = ptrthis->ptrnext;
}

最佳答案

写入大小为 255 字节的数组将向文件写入 255 字节(无论您在该数组中填充了什么)。如果您只需要该数组的“文本”部分,则需要使用处理空终止符的工具(即 printffprintf ...)。

读取会更加复杂,因为您需要设置代表字符串结尾的标记值。

这并没有说明您正在写入的指针值(无论是否已初始化)在下次读取时将没有上下文或有效性。指针(即内存位置)仅在当前正在执行的进程中起作用。尝试在另一个进程中使用一个进程的内存地址绝对是一个坏主意

关于c - 用 C 将结构写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317069/

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