私はC99プログラムを作成していますが、コードの少しの冗長性から抜け出すためにいくつかの助けが必要です。次のコードを関数の2つの呼び出しに変換したいのですが、その方法がわかりません。
2つのファイル(それぞれに15の入り口があります)を読み取り、その内容を2つの配列に入れたいと思います。問題は、これらの配列のデータ型が異なることです。
これが私が持っているものです:
typedef char string[30];
int
_vInt[15];
string
_vString[15];
FILE
*_fInt,
*_fString;
int main(){
...
for(int i = 0; !feof(_fInt) && i < 15; ++i){
fscanf(_fInt, "%d", &_vInt[i]);
...
}
for(int i = 0; !feof(_fString) && i < 15; ++i){
fscanf(_fString, "%s", _vString[i]);
...
}
...
}
だから、これを二度使いたくないfor
。代わりに、関数を2回呼び出したいと思います。
readFile(_fInt, "%d", _vInt);
readFile(_fString, "%s", _vString);
問題は、関数のプロトタイプがどうあるべきか、またそれをどのように使用すべきかがわからないことです。
はい、醜いvoid *
ソリューションを使用しても問題ありません...