본문 바로가기
프로그래밍 ( Programming )/C++

[C++]공백이 포함된 문자열 입력받는 함수

by Jayce_choi 2020. 12. 15.
반응형

C++에서 단순한 cin을 통해서 띄어쓰기 입력을 받을 수가 없습니다.
때문에 C++에서 띄워쓰기가 포함된 문자열을 받을 수 있는 함수에 대해서 적어보겠습니다.

 

1. std::getline()
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str;
	getline(cin, str);
	cout << str;

	return 0;
}

std::getline() 은 <string>에 정의되어있는 함수입니다.

- 첫번째 매개변수에 따라 파일 입력 또는 표준 입력을 받을지 결정.
- 두번째 매개변수에 문자열을 저장할 string형 변수 기입
- 세번째 매개변수는 입력받은 문자들 중에서 어느 문자까지 저장할지 결정

 

2. std::cin.getline()
#include<iostream>

using namespace std;
int main()
{
	char ch[1000];
	cin.getline(ch,1000);
	cout << ch;
	return 0;
}

std::cin.getline()은 <iostream>에 정의된 cin의 함수입니다.

- 첫번째 매개변수에 문자열을 저장할 char 배열 기입
- 두번째 매개변수에 저장할 문자 최대 개수 값 기입

 

3. gets_s
#include <stdio.h>
int main() {
  char str[100];
  printf("당신의 이름은 무엇인가요? ");
  gets_s(str,sizeof(str));
  printf("만나서 반가워요 %s 님 \n", str);
  return 0;
}

gets_s함수는 stdio.h 헤더 파일에 내장된 함수입니다.

gets_s(버퍼, 버퍼크기);

- 첫 번째 매개변수는 입력될 문자열 이름을 기입합니다.
- 두 번째 매개변수는 입력받을 사이즈를 기입합니다.  
- 성공 시 입력된 문자열을 반환, 실패하면 NULL 반환

 

참고

 

C 언어 레퍼런스 - gets 함수

 

modoocode.com

 

 

C 언어 코딩 도장: 85.19 문자열 입출력 함수 사용하기

stdio.h 헤더 파일에는 scanf, printf, fgets, fputs 함수 이외에도 문자열 입출력 함수 gets_s, puts, fgetc, putc가 있습니다. gets_s(버퍼, 버퍼크기); char *gets_s(char *_Buffer, rsize_t _Size); 공하면 입력된 문자열을 반

dojang.io

 

반응형

댓글