CPP기초

· Language/C++
문자열(string) char buffeer[256]; cin.getline(buffer, 256); // 더 나은 방법 #define BUFFER_SIZE 256; char buffeer[BUFFER_SIZE]; cin.getline(buffer, BUFFER_SIZE); // 또 다른 방법 const int BUFFER_SIZE = 256; char buffeer[BUFFER_SIZE]; cin.getline(buffer, BUFFER_SIZE); 위 코드의 문제점 아무것도 읽지 못했을 때 한 줄의 문자가 256자 이상일 때(버퍼의 크기가 충분히 크지 않을 때) std::string 클래스 std::string 클래스를 이용한 문자열은 길이가 증가할 수 있다. #include std::string n..
· Language/C++
C에서 입력을 가져오는 경우 실행 중에 캐릭터 배열이 얼마나 할당되어 있는지 알 수 없다. scanf는 경계 검사를 하지 않음. → 5개로 할당이 되어있다면, 그것을 넘는 글자 수를 받았을 때, 지정되지 않은 메모리를 접근하려고 할 것이다. char first_name[20]; scanf(%s", first_name); C++에서 입력을 가져오는 경우 scanf() 와 cin cin 또한 char 배열의 길이를 모른다. scanf()와 같은 위험성이 있다. 이를 피하려면 setw()를 사용하면 된다. char first\_name\[20\]; cin >> first\_name; char name[4]; cin >> setw(4) >> name; 스트림 상태 : 읽어오다가 실패했을 때 상태를 저장한다. n..
coco_daddy
'CPP기초' 태그의 글 목록