【发布时间】:2014-12-08 20:14:40
【问题描述】:
我想读取包含字符串和数字混合的文件并将其存储到二维数组中。条件是第一行和第一列应该作为我的二维数组的索引。这是示例文件。
xx,yy
aaa,10,11
bbb,12,13
ccc,14,15
ddd,16,17
eee,18,19
要清楚,我怎样才能将字符串作为索引,我的数组应该给我这样的值
array[aaa][xx] = 10
array[bbb][yy] = 13... etc.,
这是我的方法
FILE* fp1 = fopen("test.csv","r");
if(fp1 == NULL)
{
printf("Failed to open file\n");
return 1;
}
char s[1] = ",";
fscanf(fp1,"%[^\n]",array); // Read first row alone
token = strtok(array,s);
while( token != NULL )
{
strArray[i] = strdup(token); // First row stored in strArray[i]
strcpy(strArray[i], token);
token = strtok(NULL, s);
i++;
}
i=0;
while((fscanf(fp2,"%[^,],%[^,],%[^\n]\n",Col1,Col2,Col3)>0)) // Reading File Column wise
{
Column_1[i][j]= strdup(Col1);
Column_2[j]= atof(Col2);
Column_3[j]=atof(Col3);
j=j+1;
}
for(i=0;i<1;i++)
{
for(j=0;j<=5;j++)
{
myArray[i][j] = Column_2[j];
}
}
for(i=1;i<2;i++)
{
for(j=0;j<=5;j++)
{
myArray[i][j] = Column_3[j]; // Column 2 & 3 values stored in myArray[i][j]
}
}
现在在第一列和第一行中搜索所需的字符串并获取索引并使用该索引在 myArray[i][j] 中搜索以获取值。它工作得很好,但我觉得我的代码有点复杂。我正在寻找尽可能简单的代码。有人可以建议吗。
提前致谢, 湿婆
【问题讨论】:
-
制作索引和名称的对应表。
标签: c arrays string file search