我是一名新的C程序员。 当我有两个文件时,我遇到了这种情况。第一个文件有4列,第二个文件有2列。我需要将第一个文件的第3列与第二个文件的第一列进行比较。我正在寻找有效的C代码。我必须将文件转换为数组吗?我怎么能这样做?
这是我的代码部分,我尝试将第3列转换为数组但由于类型不兼容而无效:
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++;
}
答案 0 :(得分: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);