2017-05-29 5 views
1

私は初心者です。ASCII値が正しい文字を与えていない

私はeclipseを使ってcでプログラムを書いています。コンパイル時や実行後にエラーや警告が表示されることはありません。
すべての文字のすべてのASCII値を出力します。私はそれが消え出力をコピー&ペーストするとき

コード

#include <stdlib.h> 
#include <stdio.h> 
int main(){ 

    int a=0; 
    system("clear"); 
    printf("\nthese are the ASCII values of characters given in front of them\n"); 
    while(a<=255) 
    { 
    printf("%c %d \n",a,a); 

    a=a+1; 

    } 
} 

出力は、このように、これは出力のスクリーンショットのlinkで、奇妙です。 画面全体のスクリーンショットを撮ることはできませんが、126の後には文字がボックスのように見えます。私のコードに何か間違っていますか?

+0

no。 asciiの最初の32文字は印刷できません。 _int a = 32; _でこれを試してください。 – CIsForCookies

+0

@CIsForCookiesを取得してください。彼らは印刷可能ですか? –

+0

は127を超えていますか?アスキーで? – CIsForCookies

答えて

0

多くの文字は、カーソルを移動し、いくつかは、明確な画面などのアクションを制定端末/コンソールのための制御コードであり、明確なライン印刷不可能である...等

を決定するために、ctype.hで定義されたisprint関数を使用します文字が印刷可能な場合forループはここでの要件にも適しています。下記の例を参照してください。

#include <stdlib.h> 
#include <stdio.h> 
#include <ctype.h> 
int main(){ 

    system("clear"); 
    printf("\nthese are the ASCII values of characters given in front of them\n"); 
    int a; 
    for(a = 0; a <= 255; ++a) 
    { 
    printf("%c %d \n", isprint(a) ? a : '.', a); 
    } 
} 
関連する問題