1

我有一个从输入读取的代码,计算字母并将直方图绘制为 ASCII 艺术。我想做同样的事情,但使用 ncurses。怎么做?

#include <stdio.h>
int main(void) {
  int c, i, j;
  int chars[256];
  // a counter for every character in the ASCII set
  for (i = 0; i < 256; ++i) {
    chars[i] = 0;
  }
  // check each input and increment the relative element
  while ((c = getchar()) != '0') {
    ++chars[c];
  }
  // print only those characters that were received
  for (i = 0; i < 256; ++i) {
    // go through every element in chars
    if (chars[i] > 0) {
      // print headers
      if (i == ' ')
        printf(" Space: ");
      else if (i == '\n')
        printf("    \\n: ");
      else if (i == '\t')
        printf("   tab: ");
      else
        printf("%6c: ", i);
      for (j = 0; j < chars[i]; ++j)
        // print a # for every tally of each element; chars[i] is the tally
        putchar('#');
        // and we need to go through each from 0 to the final tally of that element
      printf("\n");
    }
  }
}
4

1 回答 1

1

使用Curses 开发工具包中的CDK 直方图。超级简单;是演示用法的示例代码(取自 Debian libcdk 包)。

于 2013-02-23T21:30:39.160 回答