我是一个新的C程序员。
当我有两份文件的时候,我就有这种情况了。第一个文件有4列,第二个文件有2列。我需要比较第一个文件的第三列和第二个文件的第一列。我在寻找高效的C代码。是否必须将文件转换为数组?我该怎么做?
这是代码的一部分,我试图将第三列转换为数组,但由于类型不兼容而无法工作:

int countlines = 0;
char names[countlines][100];
double column1;
char column2[15];
char column3[15];
int column4;

while(!feof(pack)) {
    fscanf(pack, "%lf %s %s %i\n", &column1, column2, column3, &column4);
    names[countlines] = column3;
    countlines++;
}

最佳答案

改变这个

 char names[countlines][100];

像这样,假设文件中最多有50行。
#define MAX_LINES 50

char names[MAX_LINES][100];

确保在fscanf(pack, "%lf %s %s %i\n", &column1, column2, column3, &column4);此语句之后
打印相关变量值,使其一致。如果是这样的话,就用strcpy()来复制字符串。
strcpy(names[countlines], column3);
countlines++;
    or
strcpy(names[countlines++], column3);

09-08 08:47