多くの人がこのエラーに遭遇したことは知っていましたが、C++でプログラミングを始めたばかりなので、まだほとんどのコマンドについてはわかりません。'reply'はこのスコープで宣言されていませんでした。C++
私は、以下のソースコードでプログラムを作成しようとしています:
#include <iostream>
int main()
{
char input[7];
std::cout << "Enter your gender (male or female):";
std::cin.getline (input, 6);
if (input == "male")
char reply[] = "Mr";
else
char reply[] = "Mrs";
std::cout << "Hello " << reply << "!\n";
return 0;
}
今、私は私のコンパイラ(G ++)でこれをコンパイルしようとしたとき。このエラーが発生しました:
StringTest.cpp: In function 'int main()':
StringTest.cpp: 16:26: error: 'reply' was not declared in this scope
私のコードに間違いがあったことを教えてください。そして私はそれをどのように解決しようとしますか?
は、あなたが(別売)を追加する場合、それは少し明確だ、 Xarlexus
@Xarlexusを:あなたは、少なくとも直接ではなく、することはできません。 'reply'は' const char [3] 'または' const char [4] '型です。それは同時に両方になることはできません。配列ではなく 'const char *'にすることができます( 'sizeof reply'は、配列のサイズではなくポインタのサイズを指定します)。あるいは、C++でプログラミングしているので、より堅牢で柔軟な 'std :: string'を使うことができます。 –
@KeithThompson、うーん、私は今、返信がconst char [3]とconst char [4]の両方になれないことを理解していると思います。返信いただきありがとうございます。 – Xarlexus