行列(二次元的に配置された二次元配列)がファイルに保存されていることを前提とした、クイックプログラムの作成に問題があります。結果の出力ファイルをチェックすると、ファイルの各行の終わりに次のような太字と赤の "\ 00"のシンボルが表示されます。 これは私のコードです:Cのファイル(.txt形式)に行列を保存する
/*\param n number of rows
\param m number of columns
\param mat pointer to the matrix
\param f file already opened in write mode where to write the matrix
*/
int save_to_file (char** mat, unsigned n, unsigned m, FILE* f){
int i, j;
for(i = 0;i <= n; i++)
for(j = 0; j <= m; j++)
if(j == m)
fprintf(f, "%c\n", mat[i][j]);
else
fprintf(f, "%c", mat[i][j]);
if (f == NULL)
return -1;
else
return 0;
}
は、私は、ファイルに書いているように横たわっている問題ですか?それが事実なら、誰でも私がそれを修正するのを助けることができますか?
を使用して変更することができますか? 'i <= n'はサイズが' m x n'なら不審なものです。また、すべてが終わった後、なぜ 'NULL'のために' f'をchackingしていますか? –
間違いがあった場合、関数は-1を返す必要があります。なぜそれは疑わしいのですか? – Chiara
'for'ループは' n + 1'回(0〜 'n')回を実行します。私はあなたの行列の次元を 'n x m'と仮定し、0を' n-1'に、0を 'm-1'にループさせたいと思いますか?言い換えれば、 'i
lurker