【发布时间】:2015-10-17 03:10:50
【问题描述】:
目前程序正在读取“无法打开输入文件”,这意味着大小为 0。我用我的编辑器制作了输入文件,但我不确定问题可能是什么。我的代码有什么问题可能导致这种情况吗?还是更有可能我只是弄乱了 input.txt 文件?
#include <stdio.h>
#include <stdlib.h>
int load_data(char* filename, int *x, float *y)
{
int i=0;
FILE* file=fopen(filename,"r");
if(file==NULL)
{
return 0;
}
int size;
fscanf(file, "%d", &size);
for(i=0;i<size;i++)
{
fscanf(file, "%d%f", &x, &y);
}
fclose(file);
return size;
}
void print_data(int *acn, float *amt, int size)
{
int i;
int *p;
for(i=0;i<size;i++)
{
printf("%-10d%-10f ", *(acn+i), *(amt+i));
}
}
int main(int argc, char** argv)
{
int size=0, *x;
char *filename;
float *y;
if(argc!=3)
{
printf("\nInsufficient arguments.\n");
return 0;
}
int n=atoi(argv[2]);
int *acn;
float *amt;
int *fp=malloc(sizeof(int)*n);
if(size==0)
{
printf("\nUnable to open the input file.\n");
return 0;
}
load_data(filename, x, y);
print_data(acn, amt, size);
free(fp);
return 0;
}
【问题讨论】:
-
main中的size变量与其他函数中的size变量不同。 main 中的size在初始化为 0 后永远不会设置。当您在其他函数中设置size时,您的main不会看到。 -
你作为命令行参数传递什么值?