>> Delete No. 21633 article
No. [질문] 이 소스좀 봐주세요. ^^

등록 2001-02-21 23:46:00 By localhost     조회 2
이름 지마페이    

		이 소스 선배에게 테스트 받는 문제인데요. 흠.. 제가 실력이 개뿔도 없어서.. 잘
못해서 그런것 같은데. 무엇이 문제인지 좀 같이 생각좀 해주세요..
 소스 올려놓을께요.
#include <stdio.h>               
#include <conio.h>
#include <ctype.h>         // isspace함수를 사용하기 위해서 정의
#include <stdlib.h>
#include <string.h>     // cputs를 비롯한 스트링 함수를 사용하기  위해서 정의
 #define MAX_GET 128     // 최대입력치
#define MAX_VALUE 0x7fffffffL  // long값의 최대값
#define MIN_VALUE ((long)0x80000000L)  // long값의 최소값
 long getvalue(size_t width);     // 입력함수 만들었음. width는 입력치의 범위
void putvalue(long value);       // 출력함수 만들었음. 출력함수개선
 void main(void)
{
 long value;     // 입력값을 받을곳
 clrscr();       // 화면정리
 do
  {
   cputs("값을입력하세요. : ");
   cputs("
");                             // 줄바꿈
   gotoxy(20,wherey());                     // 커서를 앞으로 옮김
   value=getvalue(10);                      // 값을 입력받음
   if(value != MAX_VALUE && value != MIN_VALUE)   // 입력값을 long값과 비교
      {
      cputs("
 결과입니다. : ");    // 정상적인 출력
      putvalue(value);
      }
   else if(value !=MIN_VALUE) cputs("입력값이 범위를 초과했습니다.!");
                                        // long값의 크기에서 벗어남
   cputs("
 ");
   } while(value != MIN_VALUE);
}
 long getvalue(size_t width)          // 입력함수
{
 char s[MAX_GET+2], *ps, *temp;
 long value;
 s[0]=width + 1;         //cgets함수를 사용하기위해서..
 cgets(s);
 if(*(s+2)=='') return MIN_VALUE;
 for(ps=s+2;isspace(*ps);ps++);  // 공백을 없애주고 이것이 있으면 
 
value=strtol(ps,&temp,10);     // 가비지값때문에 이상한 값이 출력될것임
 if(*temp != '') return MAX
_VALUE;
 else if(value != 0L) return value;  // 정상적인 출력
 else if(*ps++ == '0' && *ps == '') return 0L;

 else return MAX_VALUE;
}
 void putvalue(long value)        // 출력함수
{
 char s[33],*ps;
 int len;
 ltoa(v
alue,s,10);
 len=strlen(s);
 ps=s;
 for(;*ps;ps++)
  {
  putch(*ps);          // 흠 이밑에 식 생각하
느라 진땀뺌
  if(--len%3 == 0 && len !=0) putch(',');
  }
}
 위엣것은 천단위 콤마찍는 털보씨용 소
스 인데. 흠 어디가 잘못일까요? 
 다음것은 문자열의 원하는 곳부터 끊어서 쉬프트 시키는
 건데 어디가 잘못일까요?
 #include <stdio.h>          // 기본적인 헤더들을 읽었음
#include <co
nio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
 void main(void)
{
 clrscr();              // 
화면정리
 char *s, *p;   // 입력을위해서 s를 뒷부분임시저장장소로 temp를
 int key,i,len;    
     // 그리고 앞부분용으로 p를 선언
 s = (char *) malloc(24);
 p = (char *) malloc(24);
  printf("문
자열을 입력해 주세요! : ");
 gets(s);               // 스트링 입력함수
 len=strlen(s);
 for(;i
sspace(*s);s++);  // 공백을 없애주고 이것이 있으면
  printf("어디서부터 SHIFT할까요? : ");
 scan
f("%d",&key);             // 쉬프트 위치를 입력받음
 if(len<key || key<=0) {
				  printf("ERROR!");
	
			  getch();
				  free(s);
				  free(p);
				  exit(-1);
				  }
 else{
 strncpy(p,s,key);             /
/ 전반부를 잘라냄
 s=s+key;
 printf("Result : %s%s",s,p);        // 후반부에 전반부를 붙여서 출
력
 printf("Press any key for end");
  free(s);
 free(p);
 }
 getch();
}
  지마페이
흠.. 도와주셨으면 
하구요. 메일로 주셔도 감사합니다. 그럼 이만.
아참 환경은 털보씨 3.0에서 컴파일했습니
다. 쩝..
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved