C++ 4

[C++]unsigned char 배열을 std::string 변수에 넣기

char 배열은 쉽게 string에 넣을 수 있습니다. char array[50]; string str_array = array; 바이트 배열을 다룰 때 자주 쓰는 unsigned char는 호락호락하게 넣을 수 없습니다. unsigned char uarray[50]; string str_array = uarray; g++ -std=gnu++11 po13.cpp po13.cpp: In function ‘int main()’: po13.cpp:127:57: error: invalid conversion from ‘unsigned char*’ to ‘const char*’ [-fpermissive] 위와 같이 'unsigned char*' 형에서 'const char*' 형으로의 invalid convers..

IT 2014.09.16

[C++] std::istream::getline

#include // 또는 istream istream& getline (char *s, streamsize n); istream& getline (char *s, streamsize n, char delim); 포맷이 지정되지 않은 입력 스트림에서 길이가 최대 n만큼 문자열을 추출해서 s에 C 문자열로 저장합니다. 구분자인 세번째 인수 delim을 생략하면 개행 문자인 '\n'으로 처리해서 한 줄을 읽어들이는 기능을 합니다. delim은 입력에서 추출되지만 s에는 저장되지 않습니다. 길이 n이나 구분자 delim에 적용되지 않았는데 파일 끝(EOF)에 도달하면 eofbit 플래그가 설정되고 이 값은 eof() 메소드로 확인할 수 있습니다. 글자를 추출할 수 없거나 구분자를 찾을 수 없는 경우에는 fai..

IT 2014.07.24

데비안에서 C++ 매뉴얼 페이지(manpage) 설치&활용하기

데비안 계열의 리눅스 배포판(debian, ubuntu, linux mint 등등)에서 C++ 매뉴얼 페이지를 제공하고 있는데 그동안 쓸 일이 없어서 설치안하고 있다가 C++ 키워드로 맨페이지를 검색해보니 안나와서 이제야 설치해봤습니다. sudo apt-get install libstdc++6-4.7-doc 위 6-4.7은 현재 설치되어 있는 libstdc 버전에 맞추면 됩니다.man std::list 는 되는데 man std::cout 은 안되네요. man 키워드라고 명령을 내리면 매뉴얼 페이지 이름에서 직접 검색해서 정확한 이름이 아니면 뜨지 않습니다. 그런 경우에는 apropos 명령을 사용하면 매뉴얼 페이지에 포함된 간단한 설명을 검색해서 보여줍니다. apropos cout또는man -k cout..

IT 2014.07.03

C++ 참조(reference) 변수 연습중

일반 변수와 참조 변수로 각각 값을 받아 증가시키는 예제 - num1은 1이 기본값이고 함수를 호출할 때마다 하나씩 증가합니다. #include using namespace std; int& ref_return(int & ref) { ref++; return ref; } int main() { int num1 = 1; int num2 = ref_return (num1); // int &num2로 바꿀경우는 103, 103으로 찍힙니다. num1 += 1; num2 += 100; // 일반 변수인 num2의 변화는 num1에 영향을 끼치지 못합니다. cout

IT 2013.12.27