- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
以下是我的代码,用于将一些硬编码的 int 值 (1,2,3,4,5) 写入文件,关闭该文件,以读取模式打开同一文件并读取写入的元素。从输出中可以看出,fwrite 正确发生,但 fread 读取不正确。
#include<stdio.h>
int main()
{
FILE *fptr;
FILE *optr;
const char *filepath = "E:\\testinput.txt";
int buf[5]={1,2,3,4,5};
int obuf[5];
int value;
int *ptr = &value;
int num_bytes_read;
int no_of_iterations;
int i;
int ret;//return value for fwrite
int count = 0;
no_of_iterations = 5;
//open the file
fptr = fopen(filepath, "wb");
if(fptr == NULL){
printf("error in opening input file");
}
/*optr = fopen(outFilepath, "wb");
if(optr == NULL){
printf("error in opening output file");
}*/
printf("int %d ", sizeof(int));
for(i=0;i<5;i++){
printf("writing %d",buf[i]);
ret = fwrite(buf,sizeof(int),1,fptr);
if(ret != 1)
{
printf("error in fwrite:%d\n", ret);
}
}
//written to input file
fclose(fptr);
fptr = fopen(filepath, "rb");
if(fptr == NULL){
printf("error in opening input file");
}
for(i=0;i<5;i++){
//reading from input file
num_bytes_read = fread(ptr,sizeof(int),1,fptr);
if(num_bytes_read == 1){
obuf[i] = *ptr;//storing into buf what is read from file
printf("read successful: %d\n", obuf[i]);
count++;
}
else{
count = 99;
break;
}
printf("\ncount%d", count);
}
fclose(fptr);
return 0;
}
写入的输入文件,如果手动打开(在任何文本编辑器中)看到 5 个非字母数字字符(重复相同的符号)这是 Eclipse 中的输出
int 4 writing 1writing 2writing 3writing 4writing 5read successful: 1
count1read successful: 1
count2read successful: 1
count3read successful: 1
count4read successful: 1
count5
最佳答案
问题出在这一行:
ret = fwrite(buf,sizeof(int),1,fptr);
对 fwrite
的所有 5 次调用都具有相同的缓冲区地址,因此每次写入数组的第一个元素时都是 1
。
由于要将所有数组元素一一写入,将buf+i
作为起始地址传递给fwrite
:
ret = fwrite(buf+i,sizeof(int),1,fptr);
现在fwrite
得到的缓冲区起始地址就是数组中第i
个元素的地址。
关于c - 在 C 中用 fread 和 fwrite 提问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308620/
假设我们有这样的序言知识库: guilty(X) :- commits(X,Y), crime(Y). crime(murder). crime(theft) 当我问这个问题时: ?-
我有一个程序可以帮助用户学习乘法表,然后显示正确/错误答案的结果。第一步是简单地询问用户想要使用哪个乘法表(1-9)。然后用户将得到一个随机数字序列乘以所选的乘法表。如果用户回答正确,则该数字将不会再
我是 C# 新手,对委托(delegate)有两个问题。 MSDN显示 Delegate 类只有两个构造函数,每个构造函数都有两个参数。然而,在下面的程序中,我用一个看似单参数的构造函数实例化了一个
我是 elasticsearch 的新手,一直在阅读他们的 API,有些事情我不太清楚 1)据说过滤器被缓存。什么意思?如果我发送一个带有 filter 的 query,会缓存什么?该查询的结果?如果
不知道有没有原生支持andengine或者ADK问问题- toast ?例如,如果我按下后退按钮,我希望弹出一些框,询问我是否真的要退出应用程序,并让我选择回答是或否。 最佳答案 最好使用警告对话框使
本文转载自微信公众号「脑子进煎鱼了」,作者陈煎鱼。转载本文请联系脑子进煎鱼了公众号。 大家好,我是煎鱼。 最近在我们 Go 的技术交流群里,有一个小伙伴提了一个程序方面的问题,还挺有意思的,
我想找到一种在我的页面的 iFrame 中使用 Qtip 的方法。我找到了一种在 iframe 上使用 QTIP 的方法,但不能在 JQUERY LIVE 上使用...... 通过 iFrame 提示
以下是我的代码,用于将一些硬编码的 int 值 (1,2,3,4,5) 写入文件,关闭该文件,以读取模式打开同一文件并读取写入的元素。从输出中可以看出,fwrite 正确发生,但 fread 读取不正
我是一名优秀的程序员,十分优秀!