입력 받은 대로 출력하는 프로그램을 작성하시오.
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
입력받은 그대로 출력한다.
Hello
Baekjoon
Online Judge
Hello
Baekjoon
Online Judge
이 문제를 풀이하기 위해서 알아야 할 점으로는
1. 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다.
2. 줄은 주어지지 않는다.
3. 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
우선 while 문을 사용하여 줄을 입력 받고, 1번 조건을 위해 scanf에서 공백을 포함하는 한 줄 전체를 입력 받기 위해서 scanf("%100[^\n]%*c", line)
이때 %*c: 바로 다음 문자 (즉, \n)를 읽어서 무시한다.
*은 해당 입력을 무시한다는 의미이다.
printf("%s\n", line)은 line 배열에 저장된 문자열을 출력.
\n을 추가하여 각 줄이 개행 문자로 끝나도록 한다.
#include <stdio.h>
int main() {
char line[101];
while (scanf("%100[^\n]", line) == 1) { // 개행 문자를 제외하고 읽음
printf("%s\n", line);
}
return 0;
}
#include <stdio.h>
int main() {
char line[101];
while (scanf("%s", line) != EOF) { // 공백을 포함한 한 줄을 읽지 못함
printf("%s\n", line);
}
return 0;
}
#include <stdio.h>
int main() {
char line[101];
while (scanf("%100[^\n]%*c", line) == 1) {
printf("%s\n", line);
}
return 0;
}
#include <stdio.h>
int main() {
char line[101];
while (fgets(line, sizeof(line), stdin)) {
printf("%s", line);
}
return 0;
}