알고리즘과 입출력
입력받는 TC의 갯수를 모를 때 : EOF 까지 입력 받기
터미널에서 직접 입력을 넣으실 땐 EOF를 수동으로 넣어주셔야 합니다. 윈도우 기준으로는 Ctrl + Z, UNIX 기준으로는 Ctrl + D입니다.
#include <iostream>
#include <string>
using namespace std;
int a = 1, b=1;
int main(void) {
while (cin >> a >> b) {
cout << a + b << endl;
}
return 0;
}
또는
#include <iostream>
#include <string>
using namespace std;
string s;
int n;
int a, b, c, d;
int main(void) {
while(getline(cin, s)){ //EOF를 입력받을 때까지
for (int i = 0; i < s.length(); i++) {
if ('a' <= s[i] && s[i] <= 'z') {
a += 1;
}
else if ('A' <= s[i] && s[i] <= 'Z') {
b += 1;
}
else if ('0' <= s[i] && s[i] <= '9') {
c += 1;
}
else if (s[i] == ' ') {
d += 1;
}
}
printf("%d %d %d %d\n", a, b, c, d);
a = b = c = d = 0;
}
return 0;
}
한 줄에 입력 받기
fgets(s, 100, stdin); //fgets는 '\n'까지 입력받음
scanf("%[^\n]\n", s);
getline(cin, s);
앞 뒤 공백 포함해서 입력받고 그대로 출력하기
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
for(int i=0; i<100 && !cin.eof(); i++){
if (getline(cin, s)) {
cout << s << endl;
}
}
return 0;
}
또는
#include <cstdio>
int main() {
char c;
while ((c = getchar()) && c != EOF) {
printf("%c",c);
}
return 0;
}
숫자 n개씩 입력받기
//1개씩
scanf("%1d",&x);
//10개씩
scanf("%10s",s);