我想读一个看起来像这样的文件:
Name=José, Age=21
Name=Antonio, Age=26
Name=Maria, Age=24
我的问题是如何从不同的位置和不同的行读取名称和年龄,并在names[size]
数组ages[size]
和年龄#include <stdio.h>
#define size 100
int main()
{
char ch = 0;
int i = 0;
char names[size];
char ages[size];
FILE *fp1;
fp1 = fopen("data.txt", "r");
if(fp1 == NULL)
{
printf("Error!");
return 1;
}
while((ch=fgetc(fp1)) != '=');
while((ch=fgetc(fp1)) != ',')
{
fscanf(fp1, "%s", names);
i++;
}
fclose(fp1);
printf("Names = %s", names);
return 0;
}
中添加相同的内容。
我现在有这个:
from_date
任何人都可以解释一下这是最好的方法吗?
答案 0 :(得分:1)
你需要2D阵列。 E.g names[number of record][max length size + 1]
像这样的样本
#include <stdio.h>
#define size 100
int main(void){
int i = 0;
char names[size][128];
char ages[size][4];
FILE *fp1;
fp1 = fopen("data.txt", "r");
if(fp1 == NULL){
printf("Error!\n");
return 1;
}
while(i < size && 2 == fscanf(fp1, "Name=%127[^,], Age=%3[0-9]\n", names[i], ages[i])){
i++;
}
fclose(fp1);
int n = i;
for(i = 0; i < n; ++i)
printf("Names = %s, Ages = %s\n", names[i], ages[i]);
return 0;
}