본문 바로가기

Language&Framework&Etc112

문자와 문자열 관련 함수(21-2) 문자 단위 입출력 함수 문자 출력 함수 : putchar, fputc 모니터로 하나의 문자를 출력할 때 일반적으로 사용하는 두 함수 #include int putchar(int c); int fputc(int c, FILE * stream); 함수호출 성공 시 쓰여진 문자정보가, 실패 시 EOF 반환 putchar : 인자로 전달된 문자정보를 stdout으로 표현되는 표준 출력 스트림으로 전송하는 함수 → 인자로 전달된 문자를 모니터로 출력하는 함수. 문자를 전송한다는 측면에서는 fputc 함수도 putchar 함수와 동일하다. 단 fputc 함수는 문자를 전송할 스트림을 지정할 수 있다. 즉, fputc 함수를 이용하면 stdout 뿐만 아니라, 파일을 대상으로도 데이터를 전송할 수 있다. 또한 fputc 함수의 두 번째 매.. 2020. 12. 10.
문자와 문자열 관련 함수(21-1) 스트림과 데이터의 이동 '데이터 입출력'에 대한 개념적 이해 무엇이 '입력'이고 무엇이 '출력'인가? 데이터의 입력과 출력은 프로그램의 흐름을 뜻하는 것임 그렇다면 무엇이 '입력'이고 무엇이 '출력'일까? 입력 : 프로그램 안으로 데이터가 흘러 들어오는 것이 입력 출력 : 프로그램 밖으로 데이터가 흘러 나가는 것이 출력 대표적 입력 장치 : 키보드, 마우스, 파일... 대표적 출력 장치 : 모니터, 파일... 데이터의 이동수단이 되는 스트림 "프로그램상에서 모니터로 문자열을 출력할 수 있는 이유는?" 프로그램상에서 모니터와 키보드를 대상으로 데이터를 입출력 하기 위해서는 이들을 연결시켜 주는 다리가 필요하다. 이러한 다리의 역할을 하는 매개체를 가리켜 '스트림(stream)'이라 한다. 출력 스트림 : 실행중인 프로그램 - 모.. 2020. 12. 10.
함수 포인터와 void 포인터(19-2) main 함수로의 인자 전달 main 함수를 통한 인자의 전달 우리가 지금까지 보아온 main 함수의 정의형태 int main(void){....} main 함수는 다음과 같이 정의 가능 int main(int argc, char* argv[]){....} 프로그램 실행 시 main함수로 전달할 인저를 열거할 수 있으며(결정할 수 있으며), main 함수 역시 이러한 인자를 전달받을 수 있도록 제한된 형태의 매개변수 선언이 가능하다. 아래와 같이 코드를 작성 #include int main(int argc, char* argv[]) { printf("전달된 문자열의 수 : %d \n", argc); for (int i = 0; i < argc; i++) printf("%d번째 문자열: %s \n", i+1, argv[i]); ret.. 2020. 12. 10.
함수 포인터와 void 포인터(19-1) 함수 포인터와 void 포인터 변수만 메모리 공간에 저장되는 것이 아님 프로그램 실행의 흐름을 구성하는 함수들도 바이너리 형태로 메모리 공간에 저장되어 호출 시 실행 메모리상에 저장된 함수의 주소 값을 저장하는 포인터 변수가 바로 '함수 포인터 변수' 함수 포인터의 이해 프로그래머가 정의하는 모든 함수는 프로그램 실행 시 '메인 메모리'에 저장되어서 실행이 된다. 함수의 이름은, 메모리상에 저장된 함수의 주소 값을 의미한다. 배열의 이름이 배열의 시작주소 값을 의미하듯, 함수의이름도 함수가 저장된 메모리 공간의 주소 값을 의미 이러한 함수의 주소 값 저장을 위한 포인터 변수를 별도로 선언할 수 있으며, 이러한 용도로 선언된 포인터 변수를 가리켜 '함수 포인터'라 한다. 그렇다면 함수 포인터를 어떻게 선언?? 함수 포인터의 포인터 형을.. 2020. 12. 10.