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

正如您将看到的,当我尝试打印时,整个帮助页面没有完全显示。

请让我知道如何让它打印整个帮助页面。

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 回答