我的任务是获取输入,打印出字符和ASCII值,并将它们每8个显示为1行。对于我输入的每个输入,我也得到了换行符的值,我不想打印它。
这是我的代码:
#include <stdio.h>
int main()
{
char ch;
int count = 0;
printf("please type an input:\n");
while ((ch = getchar()) != '#')
{
++count;
printf("%c=%d ", ch, ch);
if (count%8 == 0) printf("\n");
}
}
答案 0 :(得分:3)
阅读第一篇文章后,您可以立即使用其他getchar()
:
while ((ch = getchar()) != '#')
{
getchar(); // To eat the newline character
// Rest of code
}
或者您可以使用scanf()并等效地重写循环:
while (scanf(" %c", &ch)==1)
{
if(ch != '#')
{
++count;
printf("%c=%d ", ch, ch);
if (count%8 == 0)
printf("\n");
}
}
答案 1 :(得分:2)
int main()
{
char ch;
int count = 0;
printf("please type an input:\n");
while (1) {
ch = getchar();
if (ch == '#') break;
if (ch == '\n') continue;
printf("%c=%d ", ch, ch);
if (!(++count%8)) printf("\n");
}
}