【发布时间】:2017-05-29 12:57:19
【问题描述】:
我目前正在处理 USACO 用 C 编写的一个旧编码问题。这是我代码的前几行,我尝试使用 fscanf() 函数来获取第一个值,int ,来自blocks.in 文件:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fin = fopen ("blocks.in", "r");
FILE *fout = fopen ("blocks.out", "w");
int i,j;
int linecount = 0;
int alphabetCount[26];
fscanf(fin," %d",&linecount);
运行 gdb(作为 Eclipse C/C++ IDE 的一部分),我一直在线收到分段错误错误:
fscanf(fin," %d",&linecount);
错误始终显示为:
“flockfile() at 0x7fff855e6d39”没有可用的源代码
我无法找到问题的根源。过去我对此没有任何问题。您是否发现出了什么问题,或者有更好的解决方案/功能来提取数据?
【问题讨论】:
-
也许
fin = fopen ("blocks.in", "r")失败了。在fscanf(fin," %d",&linecount);之前测试if (fin) -
欢迎来到 Stack Overflow。请注意,在这里说“谢谢”的首选方式是投票赞成好的问题和有用的答案(一旦你有足够的声誉这样做),并接受对你提出的任何问题最有帮助的答案(这也给出了你的声誉小幅提升)。请查看About 页面以及How do I ask questions here? 和What do I do when someone answers my question?
标签: c pointers segmentation-fault scanf