c - 将 fscanf 与数组一起使用

标签 c arrays file scanf

#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()文件句柄。

关于c - 将 fscanf 与数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715497/

相关文章:

c - 为什么 GCC 在使用三字母时发出警告,而在使用二字母时却不发出警告?

c++ - 如何跳出内部 for 循环并返回到父 for 循环

c - 不同步冲洗

c - c - 如何退出或停止正在运行的线程?

arrays - 作业 C 用字符串编程栈和堆

java - 如何在不对数组进行排序的情况下计算数组中的整数组?

sql - 将 postgresql 数组解包成行

javascript - 基于字符串变量将二维数组项添加到新数组

javascript - Firefox 和 IE 中的图像源分配

java - 如何在 Java 中为文件名(不是内容)指定一个字符集?