我很难理解你如何在 c 中处理 ascii 文件。我可以毫无问题地打开文件并关闭它们或读取每行具有一个值的文件。但是,当数据用字符分隔时,我真的不明白代码在较低级别上做了什么。
示例:我有一个包含用逗号分隔的名称的文件,如下所示:"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER"
我创建了一个数组来存储它们:char names[6000][20];
现在,我处理它的代码是 while (fscanf(data, "\"%s\",", names[index]) != EOF) { index++; }
代码执行第一次迭代,names[0] 包含整个文件。
我怎样才能分开所有的名字?
这是完整的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char names[6000][20]; // an array to store 6k names of max length 19
FILE * data = fopen("./022names.txt", "r");
int index = 0;
int nbNames;
while (fscanf(data, "\"%s\",", names[index]) != EOF) {
index++;
}
nbNames = index;
fclose(data);
printf("%d\n", index);
for (index=0; index<nbNames; index++) {
printf("%s \n", names[index]);
}
printf("\n");
return 0;
}
PS:我想这也可能是因为我的数组的数据结构。