#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char ch;
int count=0;
while ((ch = getchar()) != '#')
{
if (count++ %8 == 0)
printf("\n");
else if (ch == '\n')
printf("'\n'-%03d ", ch);
else if (ch == '\t')
printf("'\t'-%03d ", ch);
else if (ch == '\v')
printf("'\v'-%03d ", ch);
else
printf("'%c'-%03d ", ch,ch );
}
printf("结束\n");
return 0;
}
//这个代码目的是让输入的字符每8个打印一行,且表示出字符和对应的ascii码,但是运行的时候,每行的第一个消失不见了
if (count++ %8 == 0)就是没行第一个 你只写了printf("\n"); 没有打印第一个字符ASCII码
修改为 printf("\n'%c'-%03d ", ch,ch );即可
修改如下,供参考:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char ch;
int count = 0;
while ((ch = getchar()) != '#')
{
if (ch == '\n')
printf("\'\\n\'-%03d ", ch); //修改
else if (ch == '\t')
printf("\'\\t\'-%03d ", ch); //修改
else if (ch == '\v')
printf("\'\\v\'-%03d ", ch); //修改
else
printf("\'%c\'-%03d ", ch, ch);//修改
if (++count % 8 == 0) //修改 这句应该搬到这里 ++ 前置
printf("\n");
}
printf("结束\n");
return 0;
}
请看👉 :#C语言-猜数字游戏