콜론 뒤에 항상 숫자가 3개 뿐이라면 간단히 해결됩니다. scanf는 그럭저럭 기능이 많거든요.
#include <stdio.h>
int main(void){
int a, b, c, d;
while(scanf("%d : %d , %d , %d", &a, &b, &c, &d) == 4){
printf("%d : %d , %d , %d\n", a, b, c, d);
}
return 0;
}
더 유연한 기능을 바란다면, 예컨대 콜론 뒤에 숫자가 전혀 없거나, 3개보다 적거나, 3개보다 많거나 하는 경우까지 전부 커버해야 한다면 문제가 복잡해집니다. 기초적인 수준의 파싱(Parsing)이라고 할 만한데 그렇다고 parser generator를 쓸 생각까지는 안 들게 만드는군요.
아예 라인 단위로 입력받은 뒤 구분자를 하나하나 검색해서 찾거나 정규표현식을 쓰거나 하는 방법도 있지만, 뭐 앞서 scanf를 써서 해결해보기도 했으니 이번엔 cin을 이용해 해결해 봅시다. 사실 C언어로 가변 길이 데이터를 다루는 건 너무 귀찮아요.
콜론 뒤에 항상 숫자가 3개 뿐이라면 간단히
콜론 뒤에 항상 숫자가 3개 뿐이라면 간단히 해결됩니다. scanf는 그럭저럭 기능이 많거든요.
더 유연한 기능을 바란다면, 예컨대 콜론 뒤에 숫자가 전혀 없거나, 3개보다 적거나, 3개보다 많거나 하는 경우까지 전부 커버해야 한다면 문제가 복잡해집니다. 기초적인 수준의 파싱(Parsing)이라고 할 만한데 그렇다고 parser generator를 쓸 생각까지는 안 들게 만드는군요.
아예 라인 단위로 입력받은 뒤 구분자를 하나하나 검색해서 찾거나 정규표현식을 쓰거나 하는 방법도 있지만, 뭐 앞서 scanf를 써서 해결해보기도 했으니 이번엔 cin을 이용해 해결해 봅시다. 사실 C언어로 가변 길이 데이터를 다루는 건 너무 귀찮아요.
좀 대충 짜서 예외 처리라던가 그런 부분이 많이 부족하니 참고만 하시고 직접 작성해 보시기 바랍니다.
덧. code에서 >>와 <<이 깨져 나오고 있는데 문맥상 알아볼 수 있으실 거라고 믿습니다. 왜 이렇게 깨져 나오는지는 잘 모르겠군요.
감사합니다!!!
정말감사해요~!!! ^^
#include <stdio.h>#include
댓글 달기