【发布时间】:2015-01-14 18:56:47
【问题描述】:
我正在尝试用 strtok 格式化一个 ASCII-Art 风格的字符串。当我尝试通过我的 IDE 运行我的程序时,它实际上是在打印我的十六进制字符串,所以我不必弄乱其中的所有反斜杠。但是,当我尝试在控制台(Ubuntu)中运行它时,它不会返回任何东西。
#include <sys/ioctl.h>
#include <stdio.h>
#include <string.h>
char pacmanText[] = { 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0d,
0x0a, 0x7c, 0x20, 0x20, 0x5f, 0x20, 0x5c, 0x20, 0x5f, 0x5f,
0x20, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x5f, 0x20,
0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x5f,
0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x20,
0x0d, 0x0a, 0x7c, 0x20, 0x7c, 0x5f, 0x29, 0x20, 0x2f, 0x20,
0x5f, 0x60, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x5f, 0x7c, 0x20,
0x27, 0x5f, 0x20, 0x60, 0x20, 0x5f, 0x20, 0x5c, 0x20, 0x2f,
0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x5c,
0x20, 0x0d, 0x0a, 0x7c, 0x20, 0x20, 0x5f, 0x5f, 0x2f, 0x20,
0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x5f, 0x7c,
0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c,
0x20, 0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c,
0x20, 0x7c, 0x0d, 0x0a, 0x7c, 0x5f, 0x7c, 0x20, 0x20, 0x20,
0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x5f,
0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f,
0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x20,
0x7c, 0x5f, 0x7c, 0x0d, 0x0a
};
int main()
{
struct winsize w;
ioctl(0, TIOCGWINSZ, &w);
char *pch = NULL;
pch = strtok(pacmanText, "\n");
while (pch != NULL)
{
printf("%s", pch);
fflush(stdout);
pch = strtok(NULL, "\n");
}
return 0;
}
那么谁能告诉我为什么它不打印那个字符串?
【问题讨论】: