好的,我有一个程序,它将新条目添加到 .dat 文件的结构中。我知道 append 它时会添加到列表的末尾。这很好用。我遇到的问题是我有一个跟踪变量来跟踪结构的长度。我可以带回结构中的项目,但如何带回跟踪长度的变量。你也找不到它的长度,所以我必须带回一个变量。我正在考虑将 .dat 文件的第一行保留为跟踪变量,但我不知道您是否可以仅 append 第一行。
波纹管当然是我用来向我的结构中添加项目的东西。上面是 num++,这意味着结构的长度增加了一个。
if ( pWrite != NULL ) {
fprintf(pWrite, "%s %s %s\n", info2[nume].first, info2[nume].last, info2[nume].number);
fclose(pWrite);
} else {
perror("The following error occurred");
exit(EXIT_FAILURE); //exit program with error
}
不确定我是否遗漏了什么。任何帮助都会很棒。谢谢!
最佳答案
在文件中存储一个整数,表示文件中的结构数量。
[integer]xxxxxxxxxxxxxxxxxxxxxx
或
xxxxxxxxxxxxxxxxxxxxxx[integer]
在这两种情况下,打开文件 (→ fopen) 时更新都需要 r+
标志。然后,您可以简单地读取然后覆盖整数。
// This may not work - my C skills got worse over the time :)
FILE *f = fopen("test.dat", "r+");
fread(buffer, sizeof(int), 1, f);
fseek(f, 0, SEEK_START);
fwrite(buffer, sizeof(int), 1, f);
关于c - 如何在 C 中退出后返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19637722/