[解決済み] ISO C++ではポインタと整数の比較は禁止されている?
2022-02-25 12:14:54
質問
以下はそのコードです。
void option5 (StudentRecord student[], int n)
{
double gpaThreshold;
char enteredMajor;
int i;
cout << "Enter a GPA threshold: ";
cin >> gpaThreshold;
cin.ignore(80, '\n');
cout << "Enter a Major: ";
cin >> enteredMajor;
cin.ignore(80, '\n');
enteredMajor = toupper(enteredMajor);
for (i = 0; i < n; i++)
{
if (student[i].gpa >= gpaThreshold && student[i].major == enteredMajor)
{
if (i % 10 == 0)
{
cin.ignore();
}
cout << setw(3) << right << i+1 << ". "
<< setw(20) << left << student[i].lastName
<< setw(20) << left << student[i].firstName
<< setw(8) << left << student[i].major
<< fixed << setprecision(2) << setw(8) << left << student[i].earnedHours
<< fixed << setprecision(2) << setw(6) << left << student[i].gpa << endl;
}
}
}
StudentRecord は構造体で、その行の唯一の整数は 'i' で、一方ポインタは (私が仮定しなければならない) .major です。
入力された専攻と配列の中の"Major"の値を比較したいのですが、どうすればよいですか? 例:Chemと入力する。 -CHEMと表示されます。 -その専攻(とGPAの閾値)の下にあるすべての学生を検索します。 -上記のステートメントを表示します (すべての 'X' メジャーの学生)
何か提案はありますか?ヘルプは?コメントは?肯定的/否定的なフィードバックは?
EDIT: 構造体はこちらです。
struct StudentRecord
{
char lastName [16]; // field definitions of the structure
char firstName[16];
char hometown [16];
char major[5];
int studentNumber;
double balance;
int earnedHours;
double gpa;
};
解決方法は?
この断片を考えてみましょう。
student[i].major == enteredMajor
student[i].major
は
char[5]
に発展する。
char*
という意味です。これはポインタ型である。
enteredMajor
は
char
. これは積分型である。
これらの型を比較することはできません。
おそらく、デカール
enteredMajor
このように
char enteredMajor[5];
といった具合に比較します。
strcmp(student[i].major, enteredMajor) == 0
関連
-
[解決済み] テスト
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] 私的相続、公的相続、保護相続の違いについて
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] g++とgccの違いは何ですか?
-
[解決済み] JavaScriptの配列宣言で「Array()」と「[]」はどう違うのですか?
-
[解決済み] C++の'struct'と'typedef struct'の違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】Enterキーを押して続行する