所以我有一个.txt文件,其记录如下:
1234567, John, Doe
我的C代码中有数组,我想读取这些值并将它们插入:
int id[36] = {0};
char first_name[36];
char last_name[36];
所以他们的想法是,例如,1234567位于id的索引0处,John位于first_name的索引0处,而doe位于last_name的索引0处。我想用36条相似的线条做到这一点。
我调查了FILE IO,但我没有发现任何与此相关的内容。这样做的最佳方式是什么?感谢您的回复。
答案 0 :(得分:6)
使用fscanf
创建一个读取文件内容的循环。检查返回值为3
,表示已读取所有三个项目:
// id is OK as os
int id[36] = {0};
// make first_name and last_name arrays of arrays
char first_name[36][36];
char last_name[36][36];
int i = 0;
while (fscanf(fd, "%d, %35[^,], %35s", &id[i], first_name[i], last_name[i]) == 3) {
i++;
if (i == 36) {
break;
}
}
格式字符串fscanf
指定第一个参数是int
后跟逗号和空格,然后是35个非逗号,再次使用逗号,最多35个字符的序列姓氏。
答案 1 :(得分:1)
您可以使用fscanf
一次一行地读取文件,并使用strtok
解析它,以便您指定特定的字段分隔符