为什么我在以下代码的Xcode上遇到(lldb)Runtime Error?

时间:2018-12-28 18:30:15

标签: c arrays file

我已编写此代码,以尝试读取.txt文件。尝试运行它时,我得到以下结果...

    foreach ($things as $thing ) {
        if ($thing == null) {
            //do stuff and skip loop iteration
            continue;
        }     

        //Things written from this point on act as "else"

    }

我不确定如何解决此问题。非常感谢

2 个答案:

答案 0 :(得分:0)

这里

Students[line] = num;

Line不会改变,即总是0,因此可以增加它或使用循环变量。对于例如

for(int i = 0; i < 100 && ( fscanf(pToFile, "%d", &num) == 1); ++i) {
        Students[i] = num
        printf("%d ", Students[i]); 
}

并始终检查fopen()的返回值是否知道对fopen()的调用是否成功。对于例如

File *pToFile = fopen("Marks.txt","r");
if(pToFile == NULL) {
   /* @TODO error handling */
   return 0;
}

答案 1 :(得分:0)

很有可能Marks.txt不在IDE生成的可执行文件要加载的目录中。因此,pToFile将获得NULL,随后的fscanf将失败。

始终测试fopen的结果,例如喜欢

FILE *pToFile = fopen("Marks.txt", "r");
if (!pToFile) {
   printf("failed to open file.");
   return 1;
}
...

并将Marks.txt放在XCode生成可执行文件的目录中。通过在产品上的“产品树”下右键单击并选择“在Finder中显示”,可以轻松地在XCode中获得此功能:

enter image description here