2012-09-19 4 views
0

저는 C 프로그래밍의 초보자이며 문제가 있습니다. 여기 내 문제가 있습니다 : 우리는 문자를 입력 할 때 자동으로 대문자가되도록 'toupper'함수를 사용하고 싶습니다. 출력에 표시 할 때가 아니라 입력 할 때 대문자로 만들고 싶습니다. 우리가 프로그램을 실행할 때자동으로 대문자로 변환

그래서 그냥이 같다고 : (. 우리가 a를 입력 할 때 자동으로이 댓글에서 A. 예를됩니다)

편지 (A/B/C) : a 선택을

편지를 선택 (A/B/C) : A

이는 여기 A (출력)

이다 (자동 대문자가) 내 현재 코드 : 사전 :D ... 에서

#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 

int main() 
{ 
    char a; 

    printf("(A/B/C): "); 
    scanf("%c", &a); 

    printf("%c", a); 

} 

덕분에 난 정말 당신의 도움이 필요

+6

7 개의 답변과 0 개의 답변이 허용됩니다. 돌아가서 답을 얻은 질문에 해결책을 표시하십시오. – Marlon

+2

일반적인 표준 I/O 기능으로는이 작업을 수행 할 수 없으므로 [ncurses] (http://en.wikipedia.org/wiki/Ncurses)와 같은 것을 사용해야합니다. –

+1

'printf ("히트 뚜껑 잠금 \ n");'... 포인트 이상으로, 왜? 'a'를 'A'로 쉽게 변환 할 수 있기 때문에 ... 사용자가 a, b, c를 입력하는 방법이 중요한 이유는 무엇입니까? – Mike

답변

2

이미 conio.h를 사용하고 있으므로 getch() 함수를 사용하는 방법이 있습니다. 하지만 참고 conio.h는 비표준 C이며 상당히 오래된 것입니다.

#include <stdio.h> 
#include <ctype.h> 
#include <conio.h> 

int main() 
{ 
    char ch; 

    printf("(A/B/C): "); 
    do 
    { 
     ch = getch(); 
     ch = toupper(ch); 
     printf("%c", ch); 
    } while(ch != '\n'); 

    getchar(); 
} 
+0

ooooowwwww 그게 괴롭습니다 : DD ... 고맙습니다. 아주 고맙습니다. 많이 도와주세요 :)) ... 나는 당신에게 묻고 싶다 ... 나는이 스크립트에서 그것을 얻지 않는다. ch = getch() <- 설명 할 수 있겠는가? – messerchainey

+1

@messerchainey getch()는 표준 getchar()과 똑같이 작동하는 conio.h에있는 비표준 함수입니다. getch()는 사용자가 입력 한 마지막 문자를 _ 출력하지 않고 출력합니다 사용자가 enter_를 누를 때까지 기다린다.코드에서 좀 더 의미있는 것을 만들고 싶다면 대신 문자열 (문자 배열)을 사용해야합니다. – Lundin

+0

하지만 제가 말했듯이, conio.h/getch는 꽤 오래되었고 많은 컴파일러에서 지원하지 않습니다. Linux/Posix 용 ncurses 또는 Windows의 콘솔 API 함수와 같이 순수 플랫폼 종속 API 호출을 대신 사용하는 것이 더 좋습니다. – Lundin

-1
printf("%c", islower(a) ? toupper(a) : a); 

추가 : 유닉스에 stty olcuc 작품.

+0

-1 부탁드립니다. – Elemental

+0

입력 할 때 콘솔 출력을 만들고 싶습니다. – messerchainey

+0

도움을 주셔서 감사합니다. :) – messerchainey

관련 문제