#include <stdio.h>
#include <stdlib.h>


int main()
   {

    FILE *buildingsptr;
    int ptr2[8];


    buildingsptr=fopen("buildings.txt","r");

    fscanf(buildingsptr, "%d", &ptr2);
    printf("%d", ptr2);


getch();
return 0;
}


我有一个更大的代码,我发现这部分导致了问题。 “ buildings.txt”文件中包含一些整数,例如24或7,我只想打印文本的第一个数字,但是此代码给了我一个像2293296这样的数字,我是编码的新手,所以我不能解决我的问题,如果您能帮助我,我将不胜感激。 :)

最佳答案

ptr2是一个数组。您想获取(并打印)其元素之一

fscanf(buildingsptr, "%d", &ptr2[2]); // fetch into the element with index 2
printf("%d", ptr2[2]); // print the value of the element with index 2


但是,您确实应该检查fscanf()(以及以前的fopen())的返回值,以确保一切正常

if (fscanf(buildingsptr, "%d", &ptr2[2]) != 1) {
    // there was an error
} else {
    printf("%d", ptr2[2]);
}


不要忘记也fclose()文件句柄。

10-06 01:25