PrintLines 関数には、すべて int 型の 3 つの仮パラメーターが必要です。
PrintLines の 3 パラメータ バージョンのパラメータは、左から右に、印刷される文字の値、1 行に文字が印刷される回数、および生成される行数を表します。
たとえば、PrintLines('C', 5, 2) は次のようになります。
CCCCC
CCCCC
PrintLines 関数は、int 型パラメーターを使用してこの文字を表します。ただし、関数プロトタイプの存在下で呼び出されると、互換性のあるすべての引数が対応する関数パラメーターの型に変換されることに注意してください。つまり、char 型変数を使用してユーザーから目的の文字を取得したとしても、int 型パラメーターを持つ関数に渡されると、自動的に int 型に変換されます。ただし、コンパイラの警告の可能性を回避するには、そのような引数を渡すときに型キャストを使用します。また、値を返すことが意味のある目的に役立つ場合を除き、型 void を返す関数を常に宣言してください。
私の問題は、「a」パラメーターを正しく型キャストする方法がわからないことです。要件は、PrintLines が 3 つの int パラメータを受け入れることですが、パラメータ「a」に整数以外を入力すると、プログラムがクラッシュします。プロトタイプ、関数ヘッダー、および出力で「a」変数を型キャストしようとしました。これまでに試したことを示すために、コメント付きのコードをいくつか含めました。コードはコンパイルされますが、実行時/論理エラーがあると思います。
誰でも助けてもらえますか?
main.cpp のコードは次のとおりです。
#include<iostream>
using namespace std;
int a ;
int b ;
int c ;
void PrintLines( int, int, int ) ;
int main(void)
{
//cin >> (char)a >> b >> c ;
cin >> a >> b >> c ;
cout << '\n' ;
//PrintLines( (char)a, b, c ) ;
PrintLines( a, b, c ) ;
cout << '\n' ;
system("pause");
return 0;
}
PrintLines.cpp のコードは次のとおりです。
#include<iostream>
using namespace std;
//void PrintLines( char a, int b, int c )
//void PrintLines( (char) a, int b, int c )
void PrintLines( int a, int b, int c )
{
for(int i = 0; i < c; i++)
{
for(int j = 0; j < b; j++)
{
//cout << (char) (a - 48);
//cout<< (char) a << '\n' ;
cout << a ;
}
cout << '\n' ;
}
}