c - 打开文件时出现段错误

标签 c file segmentation-fault coredump

所以,我试图打开 2 个文件,每个文件都有 3 行和 2 个数字。编译后,我在终端中运行它(我使用的是 Ubuntu ftr)作为

./a.out a.txt+b.txt

它什么也不返回。当我注释掉代码的“检查它是否正确打开”部分时,它只是吐出一些数字并打印出错误“Segmentation fault (core dumped)”。我真的不知道我做错了什么,因为这段代码对我的 friend 来说运行良好。我在下面提供了令人讨厌的代码。 (其余代码应该对数字运行操作,这就是文件名之间有一个加号的原因。)

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

int main(int argc, char** argv){
    FILE* fa = fopen(argv[1],"r"); if(!fa)exit(1);
    FILE* fb = fopen(argv[3],"r"); if(!fb)exit(1); 
    int k;
    double A[3];
    double Ag[3];
    double B[3];
    double Bg[3];

    for (k=0;k<3;k++){
        fscanf(fa, "%lf %lf", &A[k], &Ag[k]);
        fscanf(fa, "%lf %lf", &B[k], &Bg[k]);
    }
    for (k=0;k<3;k++){
        printf("%lf %lf\n", A[k], Ag[k]);
        printf("%lf %lf\n", B[k], Bg[k]);
    }
    fclose(fa);
    fclose(fb);

return 0;}

最佳答案

(除了其他答案:)这部分代码,

for (k=0;k<3;k++){
    fscanf(fa, "%lf %lf", &A[k], &Ag[k]);
    fscanf(fa, "%lf %lf", &B[k], &Bg[k]);
}

尝试从 fa 读取六次。大概您打算从第二行的 fb 中读取。

关于c - 打开文件时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53713734/

相关文章:

c - 如何在c中的数组指针上加载txt

c - #pragma 指令编译器依赖吗?

c - ORA-01031 : insufficient privileges on insert

c++ - 动态分配的 C 风格字符串的字符数超过给定长度?

c# - 创建后写入文件时文件正在使用中

c - strtok 段错误

c - 伯克利数据库 - 重复条目段错误

python - 使用与系统使用 Python cdll import 不同的 zlib.so 版本

c - 确定用户输入的数字是否为质数的程序

java - 重命名文件夹中的所有文件 Java