我是一名新的 C 程序员。 当我有两个文件时,我遇到了这种情况。第一个文件有 4 列,第二个文件有 2 列。我需要将第一个文件的第三列与第二个文件的第一列进行比较。我正在寻找高效的 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++;
}
最佳答案
改变这个
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);
关于比较两个文件的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18745596/