【发布时间】:2018-05-24 22:07:25
【问题描述】:
因此,我浏览了互联网并在这里提出了几个问题,但找不到任何可以解决我的问题的方法。我有一个 C 编程任务,编写一个程序,允许用户在字符串中输入单词,添加更多单词,将字符串中的所有单词放入文本文件,删除字符串中的所有单词,当它们退出时保存二进制文件中的单词,在再次启动程序时加载。除了二进制文件之外,我已经完成了所有工作。
我做了两个函数,一个在程序启动时加载bin文件,一个在程序结束时保存bin文件。我不知道问题是从哪一个开始的,或者两者都开始。但基本上我知道它不能正常工作,因为如果我在程序将 bin 文件加载到字符串后将其保存在文本文件中,我的文本文件中就会出现垃圾。我确定文本文件保护程序工作正常。
感谢任何花时间帮助我的人,这是一个整天的过程!哈哈
这是我的函数的两个 sn-ps,我的代码中的其他所有内容似乎都可以正常工作,所以我不想用整个程序来涂抹这篇文章,但如果需要,我会提出来解决这个。
SIZE 是 10000 的常数,以满足 1000 字的程序规范。但即使只要求 10 个或 1 个元素,我也无法运行它,只是为了清除它
void loadBin(FILE *myBin, char *stringAll) {
myBin = fopen("myBin.bin", "rb");
if (myBin == NULL) {
saveBin(&myBin, stringAll);
}//if no bin file exists yet
fread(stringAll, sizeof(char), SIZE + 1, myBin);
fclose(myBin); }
/
void saveBin(FILE *myBin, char *stringAll) {
int stringLength = 0;
myBin = fopen("myBin.bin", "wb");
if (myBin == NULL) {
printf("Problem writing file!\n");
exit(-1);
stringLength = strlen(stringAll);
fwrite(&stringAll, sizeof(char), (stringLength + 1), myBin);
fclose(myBin); }
【问题讨论】:
-
fwrite(&stringAll应该是fwrite(stringAll? -
saveBin(myBin, stringAll),而不是&myBin,这将是**FILE
标签: c string pointers binaryfiles