行列の読み込みについて
Posted: 2009年2月24日(火) 14:43
縦500、横400という行列を読み込もうと思っています。
縦は、繰り返し文(while)で番号がつくのですが、横についてうまく番号を付ける方法がわかりません。
要は、
2 3 4 5
4 5 5 6
5 4 8 3
といった行列をma[j]で呼び出せるようにしたいのですが、jをどうすればよいかわかりません。
このようなプログラムを書いてみたのですが、
seihouka-test4.txtは 5 2 3 4 6
という一行のものです。
#include <stdio.h>
int main(void)
{
FILE *finput;
int i,j,a;
int ma[8];
char str[100];
finput=fopen("seihouka-test4.txt","r");
i=0;
while(i<=2){
if(NULL==fgets(str,100,finput))
break;
for(a=0,j=0;a<=7,j<=7;a++,j++){
sscanf(&str[a],"%1d",&ma[j]);
}
i++;
}
printf("%d %d %d %d %d\n",ma[0],ma[1],ma[2],ma[3],ma[4]);
fclose(finput);
return(0);
}
出力結果は 5 2 2 3 3
となぜか二つ目以降2回繰り返してしまいます。
どなたか解決方法を教えていただけませんでしょうか?
よろしくお願いします。
縦は、繰り返し文(while)で番号がつくのですが、横についてうまく番号を付ける方法がわかりません。
要は、
2 3 4 5
4 5 5 6
5 4 8 3
といった行列をma[j]で呼び出せるようにしたいのですが、jをどうすればよいかわかりません。
このようなプログラムを書いてみたのですが、
seihouka-test4.txtは 5 2 3 4 6
という一行のものです。
#include <stdio.h>
int main(void)
{
FILE *finput;
int i,j,a;
int ma[8];
char str[100];
finput=fopen("seihouka-test4.txt","r");
i=0;
while(i<=2){
if(NULL==fgets(str,100,finput))
break;
for(a=0,j=0;a<=7,j<=7;a++,j++){
sscanf(&str[a],"%1d",&ma[j]);
}
i++;
}
printf("%d %d %d %d %d\n",ma[0],ma[1],ma[2],ma[3],ma[4]);
fclose(finput);
return(0);
}
出力結果は 5 2 2 3 3
となぜか二つ目以降2回繰り返してしまいます。
どなたか解決方法を教えていただけませんでしょうか?
よろしくお願いします。