【发布时间】:2017-04-11 23:57:54
【问题描述】:
我写了一个程序
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int r;
char arr[] = "this is the string";
char str[20] = {'\0'};
fp = fopen("fwrite.txt", "w");
fwrite(arr, 1, sizeof(arr), fp);
fseek(fp, SEEK_SET, 0);
r = fread(str, 1, sizeof(arr), fp);
if(r == sizeof(arr))
printf("read successfully\n");
else
{
printf("read unsuccessfull\n");
exit(1);
}
printf("read = %d\n", r);
printf("%s\n", str);
fclose(fp);
return 0;
}
我正在尝试以这种方式阅读,但我做不到。这里有什么问题,是我应该放入&str[i] 并为fread 运行循环还是fread 能够将数据放入str?
我越来越垃圾了,我不明白为什么?
【问题讨论】:
-
您需要
fseek(fp, 0L, SEEK_SET)。偏移量在来源之前 (SEEK_SET)。 -
我猜你是在使用 www.tutorialspoint.com 作为参考,出于某种原因,他们以错误的顺序使用 fseek、fread 和 fwrite 的参数。
-
还需要
w+b模式打开