C语言中读写文件的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:55:53
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
void main()
{

int n,a[n],ii;
float b[n];
n=16;
printf("HI\n");
FILE *infp1;
FILE *outfp1;

if((infp1 = fopen("node.txt","r")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","node.txt");
exit(-1);
}
if((outfp1 = fopen("result1","w")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","result1");
exit(-1);
}
for(ii=0;ii<n;ii++)
{
fscanf(infp1,"%d,%e",&a[ii],&b[ii]);
printf("a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
fprintf(outfp1,"a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
}

int n,a[n],ii;
float b[n];
n=16;

C中不允许这样定义数组,修改如下:

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define N 16
void main()
{

int a[N],ii;
float b[N];
FILE *infp1;
FILE *outfp1;
printf("HI\n");

if((infp1 = fopen("E:\\node.txt","r")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","node.txt");
exit(-1);
}
if((outfp1 = fopen("E:\\result1","w")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","result1");
exit(-1);
}
for(ii=0;ii<N;ii++)
{
fscanf(infp1,"%d,%e",&a[ii],&b[ii]);
printf("a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
fprintf(outfp1,"a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
}