たとえば、次のステートメントがあるとします。
char f_name[11];
std::cin.getline(f_name,10);
thia の意味: * 11 文字幅の文字列を宣言する? * 入力された行を読み取り、「f_name」の値として渡しますか?
ありがとう。
はいといいえ。
char f_name[11];
char
11個の要素を持つの配列を宣言します。これは実際には文字列ではありません。最後にNUL()がある場合は、「C文字列」と見なすことができます'\0'
(そうではありません)。
std::cin.getline(f_name, 10);
最大9文字しか読み取れないため、入力した行全体を読み取る場合と読み取らない場合があります。バッファをに指定された値より大きくする必要はありませんcin.getline
。
特に理由がない限りstd::getline
、C++で行を読み取るために使用します。以下の例。
#include <string>
std::string line;
std::getline(std::cin, line);
はい。それで合っています!
char f_name[11];
要素を持つ配列f_name
を宣言します。11
std::cin.getline(f_name,10);
値の入力を求めるプロンプトが表示され、値が に保存されf_name[11]
ます。