【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;
}

能解决问题财富大大的有!!!
展开
 我来答
xx_lyq00
推荐于2016-08-16 · TA获得超过4138个赞
知道大有可为答主
回答量:1794
采纳率:88%
帮助的人:796万
展开全部

你可以把每个字符先存起来,最后再输入,调用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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式