:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/05/13 23:06
음;;; 보니까 기초부분을 배우시는거 같은데 나중에 포인터와 함수 그리고 콜바이밸류와 콜바이레퍼런스 개념이 잡히시면 이해를 하실수 있을텐데요. 지금은 그냥 '이렇게 하면 불편하다' 정도로 넘어가시는게 좋을겁니다. 원하시는 대로 하려면 C언어 문법 젤뒤쪽에 있는 메모리 할당과 스트립까지 가야될꺼 같습니다;;;;(제가 알기로는 그렇습니다. 다른분이 반박해주실수도있음...)
저걸다 문자열로 받아서 중간에 블랭크 부분에서 끊어가면서 개수로 체크하는 방법이 있는데 그걸 구현하시긴 좀 어려울꺼고 숫자를 입력하기전에 입력할 숫자를 입력하고 그에맞춰서 SCANF문을 스위치케이스 문으로 개수만큼 구현해도 될꺼 같은데 그건좀 노가다고,, 꼭 한번에 받아야 하는게 아니면 그냥 하나씩 받으시길;;;
09/05/13 23:22
WizardMo진종님// 흠..질문이 잘 이해가 안가네요; 저는 그냥 대충 이상한 알파벳 같은 걸 넣으면 끝나게 할 생각이었거든요;
09/05/13 23:24
질문하신분이 말씀하신게 도스창에서 커맨드 깜빡이고 숫자를 스페이스로 띄어서 입력하는거 같거든요... 그니까 scanf 를 한번 사용하되 들어오는 입력값은 랜덤이 되게,,, 숫자간의 구별 을 enter로 한다면야 루프 만들고 그안에 카운터 하나 넣어서 한번 받을때 배열에 넣고 버퍼 날리고 카운터 하나 증가시키면서 특수문자때까지 scanf무한정 돌리면 될거 같긴 합니다만 주르륵 들어오는것도 그렇게 해결을 하신거 같아서 질문드린거였습니다
09/05/13 23:29
WizardMo진종님// 입력하는 숫자의 개수가 랜덤이라면.. scanf 한번으로는 해결하기 힘들 것 같습니다.
전 처음에 생각한게 while(1) scanf if ( 특수문자) break; 뭐 이런 것이라서.. 허허.. C를 접한지도 어언 4년 째인데, 저도 아직 멀었나 봅니다.
09/05/13 23:37
(1) 문자열로 입력 받은 다음 스페이스 바를 토큰으로 숫자로 걸러내는 방법
(2) do while 문 사용으로 문자열을 입력 받고 그 문자열이 종료문자열이면 입력을 멈추는 방법 정도가 떠오르네요.
09/05/14 01:06
도움이 될지는 모르겠지만 어쨋든 구현하기 위해서라면 제코드도 한번 참고해 보세요
#include <stdio.h> void main() int a[10]; int n; int i; n=0; do{ scanf("%d",&a[n++]); for(i = 0;i<n; i++) printf("%d ",a[i]); } vc++ 6.0 에서 잠깐 테스트 해봤는데 일단은 돼네요. 저기 while안에 _cnt의 경우는 버퍼안의 남은 바이트 수라 보시면 되는데, 데이터가 남아 있다면, scan 하는 코드입니다. 1보다 커야하는 이유는 일반적인 입력으로 하면 마지막에 \n 한바이트가 기본적으로 있기 때문에 이걸 제외한 데이터가 있는지 확인하는 의미입니다. 위 코드가 아마 윈도우에서만 돌아갈거라서 좋은 코드는 아니지만, 이런 방법도 있다는 것을 아는 차원에서 추가했습니다.
|