在 Xcode 中读取 C 文件时出错

Error reading file in C in Xcode

我试图在 Xcode IDE 中读取 C 文件,但每次运行代码时它都会卡在特定行并发出 Thread 1 : EXC_BAD_ACCESS(代码 = 1,地址 = 0x68) 错误。代码如下

// Libraries to be included
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# include <string.h>
# include <math.h>

// Main function or entry point
int main(int argc, char * argv[])
{
    FILE * fp = fopen("~/Desktop/Primitivity/sample","r");
    int nCoeff, nFactors,answer, degree, i, temp;
    int check = 0;
    int * polynomial, *factors;

    // Error coming here
    check = fscanf(fp, "%d", &nCoeff);
}

最后一行提示错误。我认为 Xcode 无法找到该文件。我试过绝对地址和相对地址。文件名为 sample(无扩展名)。

它出现在最后一行,因为 fpNULL。尝试在代码中添加一些错误检查,例如检查 fp 是否为 NULL 并打印 errno 的值,如果是则退出程序。有关详细信息,请参阅 fopen(3)errno(3) 手册页。

(另外,扩展“~”的是shell,不是系统调用。)

需要修正2点

  • 在 fopen 中提供文件的完整路径。您需要展开“~”。
  • fopen 不会理解“~”。它将尝试在以“~”开头的绝对路径中查找文件。 对 fp 进行空检查。这将帮助您检测打开文件时出现的任何问题。也可能是文件权限问题。

请参阅下面更正后的代码。

FILE * fp = fopen("/Users/abc/Desktop/sample","r");
if(!fp)
{
    NSLog(@"Failed to open file");
    return;
}
int nCoeff, nFactors,answer, degree, i, temp;
int check = 0;
int * polynomial, *factors;

check = fscanf(fp, "%d", &nCoeff);