C++ 문자열 입출력 함수
2014.06.14 09:42
참고 문서 |
---|
문자열 입력함수 : gets( )
- 색인 없이 문자 배열의 이름으로 함수를 호출한다.
- gets( ) 함수는 사용자가 <Enter>키를 입력할 때까지 (개행문자가 나타날 때까지)
문자들을 읽으며, 이 문자들은 포인터가 가리키는 배열에 저장된다.
- gets( ) 함수는 함수의 수행이 성공하면 입력된 문자 배열의 시작 주소를 가지는
포인터를 반환하며, 에러가 발생하면 null 포인터를 반환한다.
char *gets(char *string); /* 문자열 입력 함수 */int puts(char *string); /* 문자열 출력 함수 */
※ 이 함수들은 <stdio.h> 헤더 파일을 사용한다.
문자열 출력함수 : puts( )
- puts( ) 함수는 string이 가리키는 문자열을 화면에 출력하며, 자동으로 줄 바꿈('\n')기능을 포함한다.- puts( ) 함수는 함수의 수행이 성공하면 양수를 반환하고, 에러가 발생하면 EOF(-1)를반환한다.
#include <stdio.h> int main(void) { int i; char name[15]=""; printf("%s , %p \n", name, name); /* 메모리에 저장된 내용이 없음을 확인한다. */ printf("input string ? "); scanf("%s", name); /* 문자열 입력 */ printf("name : %s \n", name); /* 문자열 출력 */ return 0; }
scanf( ) 함수와 gets( ) 함수의 차이
- scanf( ) 함수는 단어 입력 함수이기 때문에 공백을 포함하지 않는 문자열
입력일 경우에만 사용한다.
- scanf( ) 와 gets( ) 함수는 배열의 경계를 검사하지 않기 때문에 함수와 함께 사용된
배열이 저장할 수 있는 문자보다 더 많은 문자를 입력하는 것을 방지하지 못한다.
#include <stdio.h> int main(void) { int i; char name[15]=""; printf("%s , %p \n", name, name); /* 메모리에 저장된 내용이 없음을 확인 */ printf("input string ? "); /* scanf("%s", name); */ gets(name); /* 문자열 입력 */ printf("name : %s \n", name); /* 문자열 출력 */ puts(name); /* 문자열 출력 */ return 0; }
fgets( ) 함수는 세 번째 인수의 장치(스트림)에서 두 번째 인수로 지정된 수 만큼의 문자들을
읽어 첫 번째 인수로 지정된 포인터(주소)가 가리키는 위치에 저장한다.
#include <stdio.h> int main(void) { int i; char name[15]=""; printf("%s , %p \n", name, name); printf("input string ? "); /* scanf("%s", name); gets(name); */ fgets(name, 15, stdin); /* 문자열 입력 */ printf("name : %s \n", name); /* 문자열 출력 */ return 0; }
#include <stdio.h> int main(void) { int i; char name[15]=""; printf("%s , %p \n", name, name); printf("input string ? "); gets(name); printf("name : %s \n", name); for(i=0; name[i]!='\0'; i++) printf("%d, %c, %p \n", name[i], name[i], &name[i]); return 0; }
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
43 | 구조체 포인터 | 2014.06.15 | 931 |
42 | 구조체의 선언과 데이터 입·출력 | 2014.06.15 | 3084 |
41 | 함수 포인터 | 2014.06.15 | 447 |
40 | 배열과 포인터 | 2014.06.15 | 406 |
39 | 포인터 연산 | 2014.06.15 | 384 |
38 | 포인터 변수 | 2014.06.15 | 414 |
37 | 데이터 정렬 | 2014.06.15 | 424 |
36 | 배열 초기화 | 2014.06.14 | 630 |
35 | 2차원 배열 | 2014.06.14 | 670 |
34 | 문자열 처리 함수 | 2014.06.14 | 412 |
» | 문자열 입출력 함수 | 2014.06.14 | 442 |
32 | 접근 수정자 | 2014.06.14 | 824 |
31 | 전역 변수 | 2014.06.14 | 308 |
30 | 지역 변수(local variable) | 2014.06.14 | 295 |
29 | 변수와 메모리 저장 위치 | 2014.06.14 | 428 |
28 | 비트 연산자 | 2014.06.14 | 288 |
27 | 관계 연산자와 논리 연산자 | 2014.06.14 | 472 |
26 | 증감 연산자 | 2014.06.14 | 319 |
25 | printf() 함수의 형식 지정자 | 2014.06.14 | 7522 |
24 | 열거 형 변수의 이해 | 2014.06.14 | 465 |