次のようなコード行があります。
const int maxtext=1000;
char text[maxtext];
cin.getline(text,maxtext);
それから私が見ようとすると、
sizeof(text)
入力の長さではなく、maxtext が表示されます。
私が間違っていることは何ですか?
PD.: < string > ライブラリの関数が使えません。
sizeof(text)
の内容は調べませんtext
(オブジェクトのサイズをバイト単位で返します。sizeofを参照してください) text
。strlen(text)
代わりに使用してください。text
を使用する前に、次の情報が入力されていることを確認してくださいtext
。
if (cin.getline(text, maxtext))
{
}
std::getline()
withを使用することで、読み込み用に固定サイズをハードコーディングすることを避けることができますstd::string
:
std::string text;
if (std::getline(std::cin, text))
{
}