【发布时间】:2017-04-16 00:20:27
【问题描述】:
我似乎无法读取文件 data.txt。根据给出的 n 生成随机数,但是当我使用 fscanf 检查数据时,它在我检查的代码中两次都返回 0 `
#include<stdio.h>
#include <stdlib.h>
#define DATA_FILE "data.txt"
#define OUT_FILE "output.txt"
void write_data(FILE *data, int n);
int main(void)
{
int n, i, element;
FILE *dataf = fopen(DATA_FILE, "w+");
if (dataf == NULL)
{
printf("Can't open %s\n", DATA_FILE);
exit(EXIT_FAILURE);
}
printf("Enter the amount of data entries: --> ");
scanf("%d", &n);
write_data(dataf, n);
for (i = 0; i < n; i++)
{ fscanf(dataf, "%d", &element); //first attempt to read the file
printf("%d\n", element);
}
fclose(dataf);
return 0;
}
void write_data(FILE *data, int n)
{
int i, element;
srand(time(NULL));
for(i = 0; i < n; i++)
{
int r = rand() % (9 + 1 - 0) + 0;
fprintf(data, "%d", r);
fscanf(data, "%d\n", &element); //second attempt to read the file
printf("%d\n", element);
}
}
`
【问题讨论】: