ASCII值未给出正确的字母

时间:2017-05-29 10:41:54

标签: c ascii

我是初学者。

我用cclipse编写了一个程序。它在编译时不会给我任何错误和警告,也不会在执行后给出任何错误和警告 它打印出所有字符的所有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之后,这些字符看起来像是盒子。我的代码中有什么问题吗?

1 个答案:

答案 0 :(得分:0)

许多字符都是不可打印的,有些字符是终端/控制台的控制代码,用于执行清除屏幕,移动光标,清除线等操作。

使用isprint中定义的ctype.h函数确定字符是否可打印。 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);
  }
}