私は非常に基本的なユーザーであり、Cで使用されるコマンドについてはあまり詳しくないので、ご容赦ください...非常に複雑なコードは使用できません。stdio.hおよびctype.hライブラリについてはある程度の知識がありますが、それだけです。txtファイルにマトリックスがあり、行と列の数の入力に基づいてマトリックスをロードしたい
たとえば、ファイルに5x5のマトリックスがあります。特定の2x2の部分行列を抽出したいのですが、どうすればよいですか?
を使用してネストされたループを作成しました:
FILE *sample
sample=fopen("randomfile.txt","r");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
fscanf(sample,"%f",&matrix[i][j]);
}
fscanf(sample,"\n",&matrix[i][j]);
}
fclose(sample);
悲しいことに、コードは機能しません..私がこのマトリックスを持っている場合:
5.00 4.00 5.00 6.00
5.00 4.00 3.00 25.00
5.00 3.00 4.00 23.00
5.00 2.00 352.00 6.00
そして、行に3、列に3を入力すると、次のようになります。
5.00 4.00 5.00
6.00 5.00 4.00
3.00 25.00 5.00
これは2x2のサブマトリックスではないだけでなく、最初の3行と最初の3列が必要な場合でも、正しく印刷されません。
行3と列3から始めて、2行2列の部分行列を取る必要があります。
私はで終わったはずです:
4.00 23.00
352.00 6.00
これを実現するためにfgetsとsscanfを使用できると聞きました。これが私のトライアルコードです:
fgets(garbage,1,fin);
sscanf(garbage,"\n");
しかし、これも機能しません:(
私は何を間違っているのですか?
助けてください。ありがとう !