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 に答える