-
읽은 문자 개수 알아내기c++ 2018. 11. 22. 22:35
istream의 gcount() 멤버 함수를 이용하여 최근에 읽은 문자의 개수를 알아낼 수 있다. int gcount() //최근에 입력 스트림에서 읽은 바이트수(문장의 개수)리턴. 키도 개수에 포함 getline()으로 한 라인을 읽으면 몇 개의 문자를 읽었는지 알 수가 없다. gcount()를 이용하면 키를 포함하여 실제 읽은 문자의 개수를 알아낼 수 있다. ex) char line[80];cin.getline(line,80);int n = cin.gcount(); //cin.getline()에서 읽은 문자의 개수 리턴 위의 코드에서 사용자가 'Hello\n' 를 입력하면 cin.getline(line,80)가 읽은 문자의 개수는 6이다.그러므로 cin.gcount()는 6을 리턴한다. 그리고 lin..
-
std::sort()c++ 2018. 11. 22. 01:58
algorithm 이라는 헤더 파일에는 std::sort 라는 함수가 정의되어있다. 즉 #include 을 하고 using namespace std; 를 하면 sort() 함수를 쓸 수 있다. 우리가 주로 사용하는 것은 배열을 정렬하는 것이므로 배열을 먼저 설명하겠다.a라는 배열의 i번째부터 j번째까지를 정렬하고 싶을 땐 sort(a+i,a+j+1); 를 사용한다. sort() 함수의 첫 번째 인자로는 정렬하고자 하는 범위의 왼쪽을 넣고, 두 번째 인자로는 (범위의 오른쪽) + 1을 넣는다. 반드시 +1! 또한 항상 주소를 넣어주어야 한다. a+i 는 a[i]의 주소이기 때문에 위와 같이 쓴 것이다. 즉 sort(&a[i], &a[j] + 1); 를 써도 된다.int, long long, char 같은 ..
-
vector 컨테이너c++ 2018. 11. 22. 00:53
header파일#include 필요 알고리즘 함수사용#include 헤더 필요 Vector 객체 생성ex) vector v; // int 타입의 값만 다루는 벡터 객체 생성 // v는 오직 int 타입만 다루므로 다른 타입의 값을 삽입하면 오류가 발생한다. vector에 원소 삽입-> vector에 값을 삽입하기 위해서는 push_back() 멤버 함수를 이용한다.push_back()은 삽입되는 값을 벡터의 맨 마지막에 삽입한다. ex) v.push_back(1);v.push_back(2);v.push_back(3); // 저장된 원소의 개수는 3이 된다. vector의 원소 값 읽기 및 변경 at() 멤버 함수를 이용하면 벡터의 원소에 접근할 수 있다. v.at(2) = 5; // v의 3번째 원소 값..
-
문자열 다루기c++ 2018. 11. 19. 23:09
문자열 치환=ex)string a = "java", b="C++"a = b; //a= "C++"이 된다. 문자열 비교Compare() 함수두 문자열이 같으면 0, str보다 사전 순으로 앞에 오면 음수, 뒤에 오면 양수를 리턴한다. 문자열 연결append()ex) string a("i");a.append("love"); a = "i love" 문자열 삽입string a("I love c++");a.insert(2, "really"); a = "I really love c++" replace() a.replace(2,11, "study"); // a= "I study c++" 문자열길이문자열에 포함된 문자 개수를 말하며,length(), size() 함수는 문자열의 길이를 리턴한다.string객체의 내부 ..
-
cin 과 >>의 허점과 해결방법c++ 2018. 11. 7. 21:52
>>연산자는 공백문자를 만나면 공백전 문자열만 인식한다. 예를들어, backjoon comeon 이라 쳤는데 앞에 공백전 backjoon만 입력결과가 나오는 것을 확인할 수 있다. 해결방법은 getline()함수를 사용하면 된다. 이와 같이 getline함수를 써서 공백이 포함된 문자열을 입력받을 수 있다. 예제 하나를 풀어보자. Ex) '.'문자가 입력될 때까지 도시의 이름을 문자열로 입력받아 char city[21] 배열에 저장하는 cin.getline() 호출 코드를 보여라. 도시의 이름은 최대 20글자이며, 영문자로 입력하는 것을 가정한다. 요번엔 string을 안쓰기에 #include헤더를 안넣어주었고cin객체의 getline()멤버함수를 사용해서 cin.getline(키보드로부터 읽은 문자열을..
-
-
cin과 >>로 키 입력받기c++ 2018. 11. 2. 21:07
c++에서는 표준 입력 스트림인 cin과 >>연산자를 이용하여 사용자로부터 키를 입력받는다.cin과 >>연산자는 헤더 파일에 선언되어 있으므로 프로그램 서두에는 다음 문이 필요하다. 다음의 모든 기본 타입에 대해 >> 연산자로 데이터 입력이 가능하다. bool, char, short, int, long, float, double 다음은 정수형 변수 width와 문자형 변수 c에 각각 정수와 문자를 입력받는 코드이다. int width;cin >> width; // 키보드로부터 정수를 입력받아 width에 저장char c;cin >> c; //키보드로부터 문자를 입력받아 c에 저장 c++에서는 c언어와 달리 키 입력받는 변수를 다음과 같이 이름 그대로 사용한다. int width;cin >> width; ..