我是一个新的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);