如果这是一个愚蠢的问题,我很抱歉,但我尝试了许多不同的来源,我仍然没有得到我想要的。我正在研究一个从文本文件中读取的程序,在下面的代码中,我试图读取第一行,它将给出在下面创建的电阻颜色代码的数量。我试着读这个数字(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/

10-11 04:36
查看更多