1

我是一个新的 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++;
}
4

1 回答 1

1

改变这个

 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);   
于 2013-09-11T15:45:13.120 回答