私は本当に解決する方法がわからないこの防御プログラミングの問題があります。入力ファイルの内容を確認しています
私は、引数としてファイルのパスとテーブルのサイズを(行/列カウント)かかり、私は、入力ファイルを検証するより良い方法を探しています。この機能を持っています。この関数の引数は常に正しいと仮定します。例えば
:size
は、ファイルに格納されるテーブルの "小側" を表す= 2
1 2 3 4 5
5 6 7 8 9
サイズが間違っている間= 2
1 2 3 4
5 6 7 8
サイズが正しいこと
また、私はこの
ようなファイルを拒否できるようにしたいのですが1 2 3 4 5 6 7 8
サイズ=私は拒否できるようにしたいファイルの別のタイプは、として
1 2 3
4 5 6
サイズ= 2
ある
(fscanfを介して受け入れられている)2今私の唯一のセキュリティは、ファイルの要素が本当に数字かどうかをチェックすることです。ここで
私がこれまで行ってきたコードです:
void import(float** table, int size, char* path)
{
FILE* data = fopen(path, "r");
assert(data);
int i,j;
int st;
for (i=0; i<size; i++)
{
for(j=0; j<(size*2)-1; j++)
{
st = fscanf(data, "%f", &table[i][j]);
if (!st)
{
printf("Error while importing the file.\n");
fclose(data);
return -1;
}
}
}
fclose(data);
}
私は、本当にどこで、どのように開始するために行う、私はCで本当に堪能じゃないと機能の多くを存在があるようです私が望むことをするための仕組みがありますが、それらはすべて非常に複雑に見えますが、実際に提供されているコードよりも長いものもあります。
誰もが素晴らしいことだろう正しい方向に私を指すことができます。
* "番号= 2" *とは何を意味するのでしょうか? – LihO
正しいファイルがどのようなものか分かりません。私が見ることができるのは、「2」は常に正しいということだけです。 – cnicutar
@LihO入力番号、コード内のサイズ – Sword22