gpt4 book ai didi

c - fread 不插入值

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:59 24 4
gpt4 key购买 nike

当我尝试启动该程序时,我遇到了一个非常奇怪的问题。## fread ## 函数不会向 vairabel (cu) 插入值。 (第 7 行)有人知道为什么吗?或者我该如何解决?函数 ## marge ## 得到两个二进制文件,我们知道这两个文件的数字按升序排列,而另一个文件中的数字按降序排列。它应该以递增的顺序将它们合并到一个文件中。(我不允许使用任何数组或其他数据结构)。非常感谢:)这是代码:(c语言)

#include<stdio.h>
#define _NO_CRT_STDIO_INLINE
#pragma warning(disable:4996)
void marge(FILE* a, FILE* b) {
FILE* res = fopen("C:\\Users\\shachar\\Desktop\\f.txt", "w+");
int cu=0, cd=0, inx=1;
fread(&cu,sizeof(int), 1, a); // the problem is here!!
fseek(b, 0, SEEK_END); //cu stays 0
fread(&cd, 4, 1, b);
while (ftell(a)!=-1||ftell(b)){
if (cu > cd) {
fprintf(res, "%d ", cu);
fread(&cu, 4, 1, a);
}
else {
fprintf(res, "%d ", cu);
fseek(b, SEEK_END, -inx);
inx++;
fread(&cd, 4, 1, b);
}
}
while (ftell(a) != -1) {
fprintf(res, "%d ", cu);
fread(&cu, 4, 1, a);
}
while (ftell(b)){
fprintf(res, "%d ", cu);
fseek(b, SEEK_END, -inx);
inx++;
fread(&cd, 4, 1, b);
}
_fcloseall();
}

int main(void) {
FILE* a = fopen("C:\\Users\\shachar\\Desktop\\x.txt", "r+" );
FILE* b = fopen("C:\\Users\\shachar\\Desktop\\y.txt", "r+");
marge(a, b);

}`

最佳答案

您没有正确打开文件。如果您想从现有文件中读取,您的 fopen 中的最后一个参数应该是 'r' 而不是 'w'。

关于c - fread 不插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314295/

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