2013-08-09 5 views
1

이것은 ASCII 문자 목록을 인쇄하려고하는 C 프로그램입니다. 나는 숫자의 범위를 인쇄하는 프로그램을 만들 수 있습니다. 비트 목록에있는 각 숫자의 ASCII 값을 인쇄 할 수 없습니다. 그래서 같은 ASCII 값C 아스키 문자 목록

#include <stdio.h> 
#define N 127 

int main(void) 
{ 
    int n; 
    int c; 

    for (n=32; n<=N; n++) { 
     char c = atoi(n); 
     printf("%d", c); 
    } 
    return 0; 
} 
+0

'printf ("% c", c);' – fvu

답변

4

atoiint에 ASCII로 변환합니다. 당신은 그것을 n에게 전달하고 있습니다. n은 ASCII가 아닙니다. int입니다. 따라서 atoi(n)이 작동하지 않습니다.

삭제 후, n이 나타내는 ASCII 문자를 인쇄하십시오.

printf("%c", n); 

당신은 다음과 같이 그 번호로 각 문자 레이블을 할 수 있습니다 : 당신은이 작업을 수행 덧붙여

for (n=32; n<=N; n++) { 
    printf("%d: %c\n", n, n); 
} 

. 이를 위해서는 C 구현이 실행 문자 집합 (및 "C 로켈")에 ASCII를 사용해야합니다. 많은 사람들이 그렇습니다. 그러나이 프로그램은 다른 문자 집합을 사용하는 구현으로 이식 할 수 없습니다.

1

사용 % (C)는, : printf("%d, %c\n", n, n); 그런 다음 atoi() 라인을 제거합니다.

1

또한

printf("%c", c) 

printf("%d", c) 

교체, 당신은 atoi 함수가 필요하지 않습니다. 그냥 다음

충분하다 :

int main(void) 
{ 
    int n; 

    for (n=32; n<=N; n++) { 
     printf("%c", n); 
    } 
    return 0; 
} 
1

% d 대신 % c을 (를) 형식 지정자로 사용해야합니다.

#include <stdio.h> 
#include <conio.h> 
#define N 127 
int main(void) 
{ 
    int n; 
    for (n=32; n<=N; n++) 
     printf("%c", n); 
    getch(); 
    return 0; 
} 
1

printf formats을 살펴보십시오.

실제로 부호가있는 10 진수를 인쇄하려면 %d이 사용됩니다. 해당 문자를 인쇄하려고하므로 찾으려는 형식은 %c입니다.

는 그래서 제공 :

printf("%d", c); 
1
for (n=32; n<=N; n++) { 
    printf("%c", n); 
} 

당신은 직접 두 변수 c을 정의 %c

주, 내부 일 (char c)를 사용하여 문자 n를 인쇄 할 수 있습니다 외부를 그림자합니다 (int c) 그것은 유효한 C이지만 일반적으로 나쁜 습관입니다.

1

int 표현의 Atoi convert ASCII 항목. 프로그램 :

#include <stdio.h> 
#define N 127 

int main() 
{ 
    int n; 

    for (n=32; n<=N; n++) 
    printf("%c",n) ; 

    return 0; 
}