| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 927 人关注过本帖
标题:程序如何控制它的输出
只看楼主 加入收藏
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
结帖率:94.12%
收藏
已结贴  问题点数:20 回复次数:11 
程序如何控制它的输出
比如输入0,暂停打印printf("ok\n");
输入1,打印printf("ok\n");
再输入0,暂停打印printf("ok\n");
...
#include <stdio.h>

void main()
{
    int i ;
    while(i)
    {
    printf("ok\n");
    scanf("%d",&i);
        printf("ok\n");
         
    }
   
}
这样代码可以改吗,如果可以怎么改,或者各位大大写一个,谢谢呵。。。
再加一个,while(1);这个语句什么意思,比如
while(1);
i++;
printf("%d\n",i);
是不是在一直执行while下面的那两条语句?

[ 本帖最后由 kelas 于 2010-8-12 20:54 编辑 ]
搜索更多相关主题的帖子: 输出 
2010-08-11 22:27
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:1 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    while(1)
    {
        if(getchar()=='0')
        while(getchar()!='1'){}
            printf("OK\n");
    }
    return 0;
}
gcc里面没有getch,所以只能先用getchar顶着。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-11 22:40
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    int i=1;
    while(1)
    {
        while(i)
        {
            printf("ok\n");
            scanf("%d",&i);
        }
        while(1)
        {
            scanf("%d",&i);
            if(1==i)
                break;
        }
    }
    return 0;
}
写好了看到2楼写的很简洁,但是测试了下发现按一下1会出现两个OK,想了一会没想出来为什么。。。谁解释下。
2010-08-11 22:55
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:0 
回复 2楼 Rexfield
还是不行呀,只能打印两个...
2010-08-11 22:56
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:1 
以下是引用毕业旅行在2010-8-11 22:55:20的发言:

#include
#include
int main(void)
{
    int i=1;
    while(1)
    {
        while(i)
        {
            printf("ok\n");
            scanf("%d",&i);
        }
        while(1)
        {
            scanf("%d",&i);
            if(1==i)
                break;
        }
    }
    return 0;
}写好了看到2楼写的很简洁,但是测试了下发现按一下1会出现两个OK,想了一会没想出来为什么。。。谁解释下。
因为按下1再按回车键盘缓冲区里面就有两个字节。然后getch获得第一个1非0,输出一个OK,然后获取第二个字节\n非0,输出OK。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-11 23:14
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:0 
回复 5楼 Rexfield
学习了~~~
2010-08-11 23:22
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:1 
我估计楼主的意思是要不停的现实OK,然后以按0就结束,然后按1又不停的显示。
我的感觉实现的话需要多线程的,C的多线程不熟悉哦,JAVA里相对简单很多。
2010-08-11 23:24
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用毕业旅行在2010-8-11 23:24:11的发言:

我估计楼主的意思是要不停的现实OK,然后以按0就结束,然后按1又不停的显示。
我的感觉实现的话需要多线程的,C的多线程不熟悉哦,JAVA里相对简单很多。
是这意思吗,楼主来说一句?
2010-08-12 00:14
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:0 
回复 8楼 pangding
恩、就是那个意思。
2010-08-12 09:11
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:10 
package printok;

import java.util.Scanner;

public class Control extends Thread{
        public void run()
        {
            while(1==1)
            {
                Print ctl=new Print();
                Scanner input=new Scanner(System.in);
                int j=ctl.i=input.nextInt();
                if(2==j)
                break;
            }
        }
}

package printok;

public class Print extends Thread{
            public static int i=0;
            public void run()
            {
                while(1==1)
                {   
                    while(i==1)
                    {
                        System.out.println("ok");
                        try {
                            Thread.sleep(1000);
                            }
                        catch (InterruptedException e) {
                            e.printStackTrace();
                            }
                    }
                    while(1==1)
                    {
                        if(i==1||i==2)
                        break;
                    }
                    if(2==i)
                    {   
                        System.out.println("程序结束");
                        break;
                    }
               
                }
            }   
}

package printok;

public class start {
    public static void main(String[] arg)
    {
        System.out.println("输入1开始打印ok,输入0暂停,输入2结束");
        Thread cc=new Control();
        Thread pp=new Print();
        pp.start();
        cc.start();        
    }
}

这个是java里的三个类,我测试过了,可以完成
谁写个C的学习下。。。
2010-08-12 10:46
快速回复:程序如何控制它的输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020996 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved