2011-01-20 19 views
0

Iは、例えば、次のステートメントを使用している場合:のstd :: cin.getline(F_NAME、10)

char f_name[11]; 
std::cin.getline(f_name,10); 

チアどういう意味: は*ワイド11文字の文字列を宣言? *入力した行を読み込み、 "f_name"の値として渡しますか?

ありがとうございました。

答えて

1

はい、あなたは正しいです!

char f_name[11]; 

11要素を持つアレイf_nameを宣言する。

std::cin.getline(f_name,10); 

は、入力する値を入力し、f_name[11]に格納します。

1

はい、いいえ。

char f_name[11]; 

は、11要素でcharの配列を宣言します。実際には文字列ではありません。末尾にNUL('\0')があれば、それを "C文字列"と見なすことができます。

std::cin.getline(f_name, 10); 

最大9文字までしか読み取ることができないため、入力行全体を読み取ることも、読み取らないこともあります。 ではなく、が指定された値より大きいバッファをcin.getlineにする必要があります。

具体的な理由がない限り、std::getlineを使用してC++で行を読み込みます。以下の例。

#include <string> 
std::string line; 
std::getline(std::cin, line); 
関連する問題