2011-01-20 4 views
0

내가 예를 들어 다음과 같은 문장이있는 경우 :표준 : 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);