0

私は初心者で、ヘルプ ページ全体を C で印刷する方法を知る必要があります。

やっています:

unsigned short * entireHelpPage;
unsigned int * someString:
printf("comparing %s to %s", someString, entireHelpPage);

これは次のようなものを印刷しています:

comparing Dog to Dog is a domestic animal.. blah blah.. Dogs are bred in mos

ご覧のとおり、HelpPage を印刷しようとすると、HelpPage 全体が完全には表示されません。

ヘルプページ全体を印刷する方法を教えてください。

4

1 に答える 1

0

ループを使用して、制限printf()または潜在的なメモリ/表示の問題を回避します。

OPで問題が発生しています。 printf()問題が発生する前に、少なくとも 4095 文字を印刷できるはずです。不適合の問題を回避するには、ループを使用します。予期しない印刷不可能な文字を見つけるには、特別な方法でそれらを印刷します。

const char *s = (const char *) entireHelpPage;
fputs(">", stdout);
while (*s) {
  if (isgraph(*s)) {
    fputc(*s, stdout);
    }
  else {
    fprintf(stdout, "[%02X]", (unsigned) *s);
    }
  s++;
}
fputs("<\n", stdout);

さらに、データunsigned short *へのポインターとして使用するのは奇妙です。char*by へのテーリング メモリ ポインタentireHelpPageが予期せずコードによって上書きされていると思われます。それはentireHelpPage約 400 バイトのバッファであり、ヘルプ ページには十分な大きさではない可能性があります。

于 2013-10-09T12:34:43.587 に答える