如果这是一个愚蠢的问题,我很抱歉,但我尝试了许多不同的来源,我仍然没有得到我想要的。我正在研究一个从文本文件中读取的程序,在下面的代码中,我试图读取第一行,它将给出在下面创建的电阻颜色代码的数量。我试着读这个数字(n),然后简单地打印出来看看它是怎么读的,但是我什么也没有得到。这看起来很简单,但我好像不明白。
`FILE *fpinpt;
FILE *fpoutpt;
FILE *fpnom;
int n, *ptr;
double a, b, c, d, e, f, g, h, i, j, k, l;
fpinpt= fopen("F:\EGR 107\EE\HW 4\resistorInput.txt","r");
fpoutpt= fopen("F:\EGR 107\EE\HW 4\resistorOutput.txt","w");
fpnom= fopen("F:\EGR 107\EE\HW 4\resistorNominal.txt","w");
fscanf(fpinpt,"%d\n",n);
printf("%d",n);
ptr=(int*)calloc(n, sizeof(int));
if (fpinpt==NULL)
{
printf("Error reading resistor file\n");
fclose(fpinpt);
}
if (ptr==NULL) printf("Error, memory not allocated\n");
`
最佳答案
在你的代码中
fscanf(fpinpt,"%d\n",n);
应该是
fscanf(fpinpt,"%d",&n);
此外,始终检查
fscanf()
,fopen()
的返回值,以确保正确的输入/操作。也就是说,你don't need to cast的回报值
malloc()
和家庭。关于c - C,读取文本文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29041535/