私のクラスのプロジェクトでは、基本的に3人の学生の情報(各学生には3つのコースと5つのテストがあり、名前、社会保障番号、電話番号などの情報が含まれています)を入力ファイルから読み取り、入力を配列に格納します。次に、情報を出力ファイルに出力します。プロジェクトは、メイン機能を含まない6つの機能に分割する必要があります。
情報を正常に読み取って保存できますが、「validateData」関数に移動すると、配列が関数に渡されないため、検証できません。このエラーは、他の関数でも発生しています。それはおそらく関数のプロトタイプのエラーだと思います。それが私がほとんど混乱していることだからです。
プロトタイプパラメータを(string []、int []、double [])に変更しようとしました。これは、文字列用、int用、double用の3つの異なる配列があるためです。しかし、これはうまくいきませんでした。これらの「[]」がないと同じことを試しましたが、まだ機能していませんでした。コンパイラがdouble *をdoubleに、またはその逆に変更できなかったというエラーが表示されたと思います。
//Declaring global constants
const int STUDENTS = 3;
const int NONNUMERIC_INFO = 9;
const int NUMERIC_INFO = 2;
const int COURSES = 3;
const int TESTS_and_CNG = 6;
//Above main function, Function prototype
void validateData(string [], int [], double []);
//Inside main function, Function call
validateData();
//Declaring Arrays (inside of a different function called inputData)
string nonNumeric1[STUDENTS][NONNUMERIC_INFO];
int numeric1[STUDENTS][NUMERIC_INFO];
double numeric2[STUDENTS][COURSES][TESTS_and_CNG];
//Under main function, Function definition
void validateData(string, int, double)
{
//A bunch of if statements that i will soon turn into for loops, but will save you guys the trouble of reading them all, as its not important to the question.
}
配列が関数に渡されることを期待していますが、そうではなく、「エラー:関数に引数が少なすぎます」というエラーが表示されます。voidvalidateData(std :: __ cxx11 :: string *、int *、double *) '"エラーメッセージが何を言おうとしているのかわかりません。
プロトタイプ関数でうまくいきましたが、関数のタイトル行が一致しません。
あなたのプロトタイプ:
//Above main function, Function prototype
void validateData(string [], int [], double []);
あなたの機能:
void validateData(string, int, double)
第二に、プロトタイプは変数名を必要としないかもしれませんが、関数のタイトル行は確かに必要です。
void validateData(string, int, double)
ここでの関数には変数タイプしかありません。関数の宣言に完全に精通していない場合は、関数の宣言のようなチュートリアルを確認します。
最後に、プロトタイプ関数のタイトル行と実際の関数のタイトル行を一致させ、実際の関数パラメーターに変数名を付けたら、関数呼び出しを修正する必要があります。
次のように関数を呼び出します。validateData();
これも、関数のタイトル行と一致しません。あなたの関数タイトル行はそれが言うvalidateData
とるstring array
、int
とdouble
。関数呼び出しは何も渡しません()
。あなたがしたい場合array
、int
およびdouble
機能に表示されるように、あなたは、関数呼び出しでそれらを渡す必要があります。validateData(some_array, some_int, some_double)
。
some_array
、some_int
...などをそれぞれのタイプの実際の変数に置き換えることを忘れないでください。
編集:
validateData
内部のメソッドを呼び出す場合inputData
は、次のような操作を行う必要があります。
void inputeData(....) {
validateData(some_array, some_int, some_double);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加