【C语言】 怎么输入换行符 但是不中断输入?
【题】编写一个程序,读取输入,直至遇到#字符。要求程序打印每个输入字符及其ASCII十进制代码。每行打印八对字符和代码。【问!】怎么做到输入多段话?中间回车的时候可以继续...
【题】
编写一个程序,读取输入,直至遇到#字符。要求程序打印每个输入字符及其ASCII十进制代码。每行打印八对字符和代码。
【问!】
怎么做到输入多段话? 中间回车的时候可以继续录入而不立即输出结果?
目前的代码:
#include <stdio.h>
int main(void)
{
char ch;
int i=0;
while ((ch=getchar())!='#')
{
i++;
switch(ch)
{
case '\n':
printf("\\n%4d; ",ch);
break;
case ' ':
printf("' '%4d; ",ch);
break;
case '\t':
printf("\\t%4d; ",ch);
break;
default:
printf("%c%4d; ",ch,ch);
}
if(i%8==0)
printf("\n");
}
return 0;
}
能解决问题财富大大的有!!! 展开
编写一个程序,读取输入,直至遇到#字符。要求程序打印每个输入字符及其ASCII十进制代码。每行打印八对字符和代码。
【问!】
怎么做到输入多段话? 中间回车的时候可以继续录入而不立即输出结果?
目前的代码:
#include <stdio.h>
int main(void)
{
char ch;
int i=0;
while ((ch=getchar())!='#')
{
i++;
switch(ch)
{
case '\n':
printf("\\n%4d; ",ch);
break;
case ' ':
printf("' '%4d; ",ch);
break;
case '\t':
printf("\\t%4d; ",ch);
break;
default:
printf("%c%4d; ",ch,ch);
}
if(i%8==0)
printf("\n");
}
return 0;
}
能解决问题财富大大的有!!! 展开
1个回答
展开全部
你可以把每个字符先存起来,最后再输入,调用getchar()这个函数,程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.
改成下面,
#include <stdio.h>
int main(void)
{
char ch;
int i=0, j = 0;
char str[10001];
while ((ch=getchar())!='#') str[j++] = ch;
while (i < j)
{
ch = str[i];
i++;
switch(ch)
{
case '\n':
printf("\\n%4d; ",ch);
break;
case ' ':
printf("' '%4d; ",ch);
break;
case '\t':
printf("\\t%4d; ",ch);
break;
default:
printf("%c%4d; ",ch,ch);
}
if(i%8==0)
printf("\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询