[C언어/C++] Gets, Puts 문자열 입출력 함수에 대해서. - 개발자 지망생
Maybe your like
안녕하세요. BlockDMask 입니다.
오늘은 C언어, C++에서 char*, char[] 스타일의 문자열을 입출력 받는 gets, puts 함수를 알아보겠습니다.
지난시간에는 문자를 다루는 getchar, putchar 두 함수에 대해서 알아봤습니다.
C++문자열관련해서 string의 전부를 보고싶다면 [바로가기]
C/C++ strcat 문자열 이어붙이기 [바로가기]C/C++ strcpy 문자열 복사 [바로가기]
C/C++ getchar, putchar 문자 입출력 [바로가기]
<목차>
1. C/C++ gets, puts 함수에 대해서.
2. C/C++ gets 예제.
3. C/C++ puts 예제.
1. C/C++ gets, puts 에 대해서
▼ gets 함수란?
헤더파일 :<stdio.h>, <cstdio>
함수원형 :char* gets(char* str);
표준 입력(stdin)으로 들어온 문자열을 C언어 스타일 문자열인 char*, char[] 타입으로 저장해 주는 함수 입니다.
gets 함수가 "문자열"이라고 감지하는 기준은 개행(\n)입니다.
gets 함수는 들어온 문자열ㅇ에 대해 '\0'울 붙여줍니다.
정리하면,표준입력으로 들어온 문자열을개행한 부분 앞까지 짤라서 char* 타입의 문자열로 저장해주고, 자동으로 문자열 맨 끝에'\0'을 넣어서 문자열을 완성해 줍니다.
▽gets 예시
char str[100]; //문자열을 입력받아서 저장할 배열 선언.
gets(str);// char*, char[] 타입의 문자열에 stdin으로 들어온 문자열 입력 받음.
printf("%s", str); // 출력
☞최신 visual studio에서는 gets는 사용하지 않게 하고 gets를 오버로드한 gets_s를 사용하라고 권장합니다.
gets의 문제는 버퍼 오버플로우가 날 수 있기 때문에, 그것을 방지 하기 위해서 조금 안전하게 gets_s를 만들어서 제공하는 것 입니다.
▼ puts 함수란?
헤더파일 : <stdio.h>, <cstdio>
함수원형 : int puts(const char* str)
C언어 스타일의 문자열인 char*, char[] 타입을 표준 출력(stdout)으로 보내는 함수입니다.
puts 함수가 문자열을 출력을 끝까지 하고나면 개행(\n)도 보내기 때문에 자동적으로 줄이 바뀌게 됩니다.
puts 함수의 매개변수로 들어온 문자열 처음부터 문자열의 끝 '\0' 까지의 문자열을 출력합니다.
정리하면, 매개변수로 들어온char* 타입의 문자열의 주소값으로 가서 문자열의 끝 '\0'이 나올때까지의 문자들을 표준출력(output)에 쭉 출력해주다가 다출력한 후에는 친절하게 개행('\n') 까지 넣어주는 함수 입니다.
▽puts 예시
char str[100] = "BlockDMask";
puts(str); // 문자열을 표준출력(콘솔창)으로 출력합니다.
2. C/C++ gets 예제.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //[C언어/C++] gets example. //BlockDMask. #include<stdio.h> int main(void) { char str[100]; for (int i = 0; i < 3; ++i) { gets(str); printf("str : %s\n", str); int j = 0; while (true) { if (str[j] == '\0') break; printf("[%c]", str[j]); ++j; } printf("\n\n"); } return 0; } | cs |
▲ gets 예제 결과.
표준입력으로 입력받은 문자들을 char* 타입의 문자열로 잘 집어넣는것을 알 수 있습니다.
while문 내부에서
무한루프에 빠지지 않고 문자열을 잘 출력하는걸 보면,C언어 스타일의 문자열 끝을 알리는 '\0' 기호가 잘 들어가 있는걸 간접적으로 확인 할 수 있습니다.
2. C/C++ puts 예제.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | //[C언어/C++] puts example. //BlockDMask. #include<stdio.h> int main(void) { char str[100]; for (int i = 0; i < 3; ++i) { printf("input : "); gets_s(str); printf("output : "); puts(str); } return 0; } | cs |
▲puts 예제 결과.
결과를 보면, char* 타입의 문자열을 표준출력(콘솔창)에 잘 출력해 주는걸 볼 수 있습니다.
그리고, puts를 한 후에 따로 개행 하지 않았는데 자동으로 개행이 되어있는걸 볼 수 있습니다.
Tag » What Is Puts In C
-
Using The Puts() Function In C/C++ - DigitalOcean
-
What Is Puts In C?
-
C Library Function - Puts() - Tutorialspoint
-
C Gets() And Puts() Functions - Javatpoint
-
Puts Function In C - Linux Hint
-
Puts() Function In C | C File Handling - Fresh2Refresh
-
C Language: Puts Function (Write String) - TechOnTheNet
-
Puts() — Write A String - IBM
-
Puts() Library Function With Examples - CodeSansar
-
Puts() Vs Printf() For Printing A String - GeeksforGeeks
-
Learn The Examples Of C Puts() Function - EduCBA
-
C Gets() & Puts() - W3schools.blog
-
C++ Puts() - C++ Standard Library - Programiz
-
Puts() Function In C Language With Example