본문 바로가기

C,C++

(6)
C,C++] 구조체(struct) 집계 데이터 유형: 여러 개별 변수를 함께 그룹화하는 데이터 유형. 구조체(struct): 집계 데이터 유형 중 하나로 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것. 이때 같은 변수만 사용하거나 여러 변수를 섞어서도 사용가능하다. 구조체 안에서 멤버(필드)와 멤버함수를 정의할 수 있다. struct PersonalInfo { //일반적으로 구조체 이름은 대문자로 시작. int SSD = 0101011234567; //기본값 지정 가능. string name; string address; }; struct GymMemberInfo { PersonalInfo p; //중첩된 구조체 int height; int weight; void printGymInfo() { //멤버함수 정의 가능. cout
C++] Stream I/O function(read, gcount, write) Unformatted I/O ▶ 입력 istream 멤버 함수 read() read(char array, int count) -char array(문자 배열) -int count(가져올 바이트 수) istream 멤버 함수 gcount() 최근에 입력스트림에서 읽은 바이트 수를 리턴한다('\n'도 개수에 포함) ▶ 출력 ostream 맴버 함수 write() write(char array, int count) - char array(문자 배열) - int count(출력할 바이 수)
C++] Stream I/O function(get, getline, ignore,put) Formatted I/O ▶ 입력 istream 멤버 함수, get() argument에 따라서 수행하는 일이 다르다. ⓐ no argument - 스트림으로부터 입력된 한 문자(공백도 가능)를 리턴한다. - 만약 end-of-file을 만났을 경우 EOF를 리턴한다. ⓑ with a character-reference argument - character reference argument에 스트림으로부터 입력된 한 문자를 저장하고 istream 객체의 참조를 리턴한다. ⓒ with three arguments(a character array, a size limit, a delimiter) - 스트림으로부터 입력된 char를 읽고 char array에 저장하고 default delimiter은 '\n'..
C++] Stream I/O Stream I/O in C++ ⓐ C++ 은 type-safe Input/Ouput을 사용한다. type-safe란 쉽게 말해 각각의 I/O operation이 데이터 타입에 민감한 것을 말한다. 따라서 정의되지 않은 데이터 타입에 대해 연산을 수행할 경우, 컴파일 에러가 발생한다. ⓑ C++ I/O 연산자는 device 독립적으로, 메모리상에서 정보를 주고 받는다. I/O format ⓐ formatted I/O(high-level) : byte들은 그룹화되고 string, int와 같은 타입으로 변환된다. 그래서 사용자는 >>,> operator의 output을 void* 로 캐스팅한다. 만약 true 조건에서는, >>는 non-null pointer 타입으로, false 조건에서는 null poi..
C] 표준 입출력 방법 정리(scanf,printf,fgets,getchar,fgetc 등) 헤더파일 1. scanf(), printf() 보다 쉬운 설명을 위해 scanf()는 printf() 이후에 설명하겠다. int printf(const char* restrict format, ...): 서식화된 출력을 지원. 출력할 데이터를 어떤 서식에 맞춰 출력할지 format specifier을 통해 직접 지정 가능(서식 지원자는 아래 참고.) ⓐ %와 타입을 나타내는 영문자 사이에 숫자를 추가하여 필드의 폭을 설정할 수 있다. ⓑ 숫자 앞에 '-' 기호를 붙이면 왼쪽 정렬로 변경할 수 있다.(오른쪽 정렬이 기본) ⓒ 숫자 앞에 '+' 기호를 붙이면 수의 부호에 맞추어 출력할 수 있다. printf("ⓐ 예시: '%3d'\n", 1); printf("ⓑ 예시: '%-3d'\n", 1); printf..
C++] 빠른 입출력 방법(endl,'\n',cin.tie(NULL), ios_base::sync_with_stdio(false)) C - scanf/printf 그대로 사용 C++ - 1. endl 대신 '\n' 버퍼(buffer): 임시 메모리 공간으로, 묶어서 한 번에 전달하므로 전송시간이 적게 걸리고 사용자의 수정이 가능하다. 버퍼가 가득 차면 내용물을 목적지로 보내는 완전 버퍼링 방식((fully buffered)과 입력된 문자 중 개행 문자가 나타날 때마다 버퍼 안의 내용을 목적지로 보내는 방식(line-buffered)가 있다. endl: 개행문자 출력버퍼로 전송하기 + 출력버퍼 비우기 \n : 개행문자 출력버퍼에 전송하기 이때, 출력버퍼를 비우는 작업은 매우 느리므로 화면에 바로 보여지는 것이 중요하지 않은 경우에는 '\n'을 사용한다. 2. cin.tie(NULL) cin과 cout의 묶음을 풀어 주어서 cin으로 읽..