본문 바로가기

C++

(2)
C++ 문자열 동적 할당 c++의 string과 getline함수의 느린 동작을 보완하기 위해서 나만의 문자열 동적 할당 함수를 작성하게 되었다 V.1 char* getstring(){ char temp[STRING_SIZE]; fgets(temp, STRING_SIZE, stdin); char* s = new char[strlen(temp)]; strcpy(s, temp); return s; } 1. 임시 배열 temp를 먼저 선언하고 2. fgets를 통해 사용자 입력을 받아 3. 입력의 크기만큼 새롭게 할당한 메모리에 4. 문자열을 붙여넣는다 이 인풋은 정상적으로 실행이 되었지만 한가지 문제가 있었다 바로 개행문자까지 저장이 된다는 것이다 $ asdfasdlkj//인풋 -> asdfasdlkj\n//결과물 그래서 마지막 개..
C++ 입력 정리 1. 변수 입력 std::cin의 경우 int a, b; std::cin >> a; std::cin >> a >> b; //다중 입력 c++ 강의를 들으면 처음으로 배우는 c++국룰 입력 방법이다 하지만 이 방식에는 문제가 있다. 첫번째로 입력의 형태이다 $10//터미널 입력 10\n//실제 입력 터미널에 10을 입력하고 엔터를 누르면 10뒤에 \n까지 입력이 된다 그렇기 때문에 정수를 입력할때 cin은 숫자뒤에 \n을 놔두고 숫자만 입력하게 된다. 문제는 이것을 string이나 char입력을 같이 사용할때 나타난다 숫자는 \n을 입력하지 못하므로 \n을 버리고 입력하는데, \n을 포함할 수 있는 string이나 char을 입력하게되는 경우 그 전에 cin에서 입력하고 버퍼에 남은 \n을 입력하게 된다...