黑马程序员技术交流社区

标题: 高手进 c语言的问题 [打印本页]

作者: dmadboy    时间: 2016-3-14 10:54
标题: 高手进 c语言的问题

使用这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");
}(本程序问题在于按下回车键后,立马输出字符,无法实现所有字符同时输出)



作者: 喧闹的世界    时间: 2016-3-14 15:15
你的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:手打的,有错自己调下。满意记得给幸苦费哦!
作者: dmadboy    时间: 2016-3-14 19:29
谢谢作答,我明白你的意思,只不过我的意思是,不用字符数组,只用字符变量来实现,就是一个小程序,就像我写的那个小程序差不多,就是回车键以后继续输入,而不把之前的输出,我的意思懂了吗?所以我的思想就是可不可以把回车键屏蔽掉, 然后bla……bla…………
作者: 唐玄玄    时间: 2016-3-14 21:30
#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");
是不是这样的
作者: dmadboy    时间: 2016-3-15 09:51
我运行了一下,还是不行,跟之前的代码运行结果一模一样,所以我觉得看来只能用字符数组实现了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2