A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

dmadboy

中级黑马

  • 黑马币:25

  • 帖子:29

  • 精华:0

© dmadboy 中级黑马   /  2016-3-14 10:54  /  738 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


使用这3个语句实现下列功能,可以使用循环分支等语句
   char ch;
   scanf("%c",&ch);
   printf("%c",ch)
使之输入下列字符(包括换行)
void main()

printf("hello world");
}
输出同样字符
示例:
#include <stdio.h>
#include <stdlib.h>
void main()
{
   char ch;
   while(ch!='#')
   {
   scanf("%c",&ch);
   printf("%c",ch)
   }
   printf("\n程序结束\n");
}(本程序问题在于按下回车键后,立马输出字符,无法实现所有字符同时输出)


4 个回复

正序浏览
我运行了一下,还是不行,跟之前的代码运行结果一模一样,所以我觉得看来只能用字符数组实现了
回复 使用道具 举报
#include <stdio.h>
#include <stdlib.h>
void main()
{
    char ch;
    while(ch!='#')
    {
    scanf("%c",&ch);
    if(ch=='\r')
      continue;
    printf("%c",ch)
    }
    printf("\n程序结束\n");
是不是这样的
回复 使用道具 举报
谢谢作答,我明白你的意思,只不过我的意思是,不用字符数组,只用字符变量来实现,就是一个小程序,就像我写的那个小程序差不多,就是回车键以后继续输入,而不把之前的输出,我的意思懂了吗?所以我的思想就是可不可以把回车键屏蔽掉, 然后bla……bla…………
回复 使用道具 举报
你的while方法体有问题,在输入后马上跟输入,当然是输入一个输入一个。提供一下方法参考:
int main(int arg,char* argv[])
{
    //输入字符临时存储
    char inputtmp;
    //所有输入字符存储位置,最大1024
    char output[1024];
    //输入字符计数
    int count = 0;
    printf("请输入一串字符,并以#结尾。(注:字符串中途不能包含#)");
    //当输入字符为#时,结束输入
    while(inputtmp != “#")
    {
        scanf("%c",&inputtmp);
        output[i] = inputtmp;
    }
    //循环输出所有字符
    for(int j = 0; j < i; j++)
    {
        printf("%c",output[j]);
    }
    printf("\n");
    printf("Game Over\n");
ps:手打的,有错自己调下。满意记得给幸苦费哦!

评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马