C语言中关于标准IO函数fwrite与fread的使用问题,代码如补充所示 100
我本来是想尝试先从已初始化的数组marbles向文件中写入5个int值,再用fread读取这5个int值放到数组result中的,程序运行没有问题,可是最后显示出来的五个...
我本来是想尝试先从已初始化的数组 marbles 向文件中写入5个int值,再用fread读取这5个int值放到数组 result 中的,程序运行没有问题,可是最后显示出来的五个数是一模一样的而且是随机数值(看起来就像是数组没有被初始化所导致的的一样),求大神解答究竟为何
#include<stdio.h>
#include<stdlib.h>
#define SIZE 5
#define SIZE_2 11
void main(void)
{
int marbles[SIZE] = {1, 2, 3, 4, 5};
FILE * fp;
char name[SIZE_2];
int result[SIZE] = {0};
int ct = 0;
//获取用户自定义文件名
printf("Please enter a name(contains no more than 10 characters)");
printf(" to set up a file.\n");
gets(name);
//创建文件
if((fp = fopen(name, "w")) == NULL)
{
fprintf(stderr, "Fail to open \"%s\"\n", name);
exit(1);
}
//将数据写入文件
if((fwrite(marbles, sizeof(int), SIZE, fp)) != SIZE)
{
fprintf(stderr, "Error! Data missing while writing datas to the file.\n");
exit(2);
}
//将数据从文件中读取,写入数组
if((fread(result, sizeof(int), SIZE, fp)) != SIZE)
{
fprintf(stderr, "Error! Data missing while retriving datas from the file.\n");
exit(3);
}
//数据输出
for(; ct < SIZE; ct++)
{
printf("%d ", result[ct]);
}
putchar('\n');
//收尾
fclose(fp);
system("pause");
} 展开
#include<stdio.h>
#include<stdlib.h>
#define SIZE 5
#define SIZE_2 11
void main(void)
{
int marbles[SIZE] = {1, 2, 3, 4, 5};
FILE * fp;
char name[SIZE_2];
int result[SIZE] = {0};
int ct = 0;
//获取用户自定义文件名
printf("Please enter a name(contains no more than 10 characters)");
printf(" to set up a file.\n");
gets(name);
//创建文件
if((fp = fopen(name, "w")) == NULL)
{
fprintf(stderr, "Fail to open \"%s\"\n", name);
exit(1);
}
//将数据写入文件
if((fwrite(marbles, sizeof(int), SIZE, fp)) != SIZE)
{
fprintf(stderr, "Error! Data missing while writing datas to the file.\n");
exit(2);
}
//将数据从文件中读取,写入数组
if((fread(result, sizeof(int), SIZE, fp)) != SIZE)
{
fprintf(stderr, "Error! Data missing while retriving datas from the file.\n");
exit(3);
}
//数据输出
for(; ct < SIZE; ct++)
{
printf("%d ", result[ct]);
}
putchar('\n');
//收尾
fclose(fp);
system("pause");
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询