알고리즘/문제 풀이

백준 4470 - 줄번호

qqlzzb 2022. 11. 17. 23:12

문제

https://www.acmicpc.net/problem/4470

 

4470번: 줄번호

텍스트에서 줄을 입력받은 뒤, 줄 번호를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

풀이

브론즈 4 문제지만 배울 게 있었다.

1. 화이트 스페이스

scanf("%[^\n]s",str);

를 입력하면 \n이 나올 때까지 입력받게 되어, 공백을 포함한 문자열을 입력받을 수 있다.

 

2. 버퍼 비우기

scanf로 입력을 받으면 버퍼가 비워지지 않아서 개행문자가 그대로 남는 등의

잘못된 입력을 받게 되는 경우가 있으므로 getchar();를 추가하여 해결할 수 있다.

 

 

코드

#include <iostream>
using namespace std;

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        char str[51];
        getchar();
        scanf("%[^\n]s",str);//white space
        printf("%d. %s\n",i,str);
    }
}