| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:求高手解释一下这程序怎么运行的?谢谢!
只看楼主 加入收藏
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求高手解释一下这程序怎么运行的?谢谢!
#include <stdio.h>
#define MAX 100
#define LEN 80
char text[MAX][LEN];
/* 一个非常简单的文本编辑器 */
void main()
{
register int t,i,j ;

for(t=0;t<MAX; t++)
{
    printf("%d:",t ) ;
    gets(text[t]);
    if(! text[t][0])
    break;
}
[color=#FF0000]for(i=0;i<t;i++) /* 按行,逐个字符输出字符串*/
{
    for(j=0; text [i][j];j++)
    putchar(text [i][j]);
    putchar( '\n');
}
}
主要不懂的是get()和putchar()各在两个独立的循环中但是运行程序的时候好像就不是了!
搜索更多相关主题的帖子: register include 编辑器 
2014-06-01 19:00
xsw07122269
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:183
注 册:2014-6-2
收藏
得分:0 
没看懂你什么意思,我运行的时候能正常运行啊。
0:sldjaldajald
1:               //第二行直接输入回车,跳出了第一个循环
sldjaldajald     //第二个循环输出非空字符
Press any key to continue
哪里有问题呢?
2014-06-02 07:42
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:0 
你要说明什么问题,怎么问怎么运行呢?是你写的程序不

我不是砖家,要努力成为砖家。
2014-06-02 09:29
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
收藏
得分:0 
回复 3 楼 砖家的谎言
哦,这是我在书上找到的程序。我就是不太明白它的每一步是怎么执行的。比如:第一个循环的作用是输入和检测空行,那么要所有的输入都结束了之后(0行,1行。。。)才进入第二个循环开始输出啊。但是运行的时候两个循环好像是同步的,gets()第一行的输入随即putchar()第一行输出到屏幕上。   谢谢!

不懂所以才学。。。
2014-06-02 15:46
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
收藏
得分:0 
回复 2 楼 xsw07122269
我不明白的就是:从程序上看,两个循环应该顺序执行,第一个循环完全结束才开始第二个循环。我们在第一循环的时候已经输入了所有行的数据(但没有输出到屏幕),第二个循环才开始输出(而且应该是一次性全部输出啊0行,1行。。。)。谢谢!

不懂所以才学。。。
2014-06-02 15:49
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
收藏
得分:0 
#include <stdio.h>
#define MAX 100
#define LEN 80
char text[MAX][LEN];
/* 一个非常简单的文本编辑器 */
void main()
{
register int t,i,j ;

for(t=0;t<MAX; t++)
{
    printf("%d:",t ) ;
    gets(text[t]);
    if(! text[t][0])
    break;
//}

/*for(i=0;i<t;i++)
{
    for(j=0; text [t][j];j++)
    putchar(text [t][j]);
    putchar( '\n');
}*/
}
}发现更奇怪的是把第二个循环注释掉后,功能不变。我就奇怪了,gets()不是只读取输入吗,怎么还有输出的功能?

不懂所以才学。。。
2014-06-02 16:04
xsw07122269
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:183
注 册:2014-6-2
收藏
得分:20 
你看到的本身就是输入的那一部分吧。“我们在第一循环的时候已经输入了所有行的数据(但没有输出到屏幕)”你怎么看你的输入的,又怎么看你输出的。
2014-06-02 17:53
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
收藏
得分:0 
回复 7 楼 xsw07122269
太感谢了,刚刚把MAX改为2之后试了一下果然是这样,懂了,还是我太笨了!呵呵!谢谢!

不懂所以才学。。。
2014-06-02 20:32
xsw07122269
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:183
注 册:2014-6-2
收藏
得分:0 
回复 8 楼 独自等待 OL
没什么笨不笨的,熟能生巧,久而久之就会了,我也刚开始学。
2014-06-03 01:22
a413873492
Rank: 2
等 级:论坛游民
帖 子:74
专家分:74
注 册:2014-5-12
收藏
得分:0 
楼主我也是新手呀哈哈

欢迎新手还大神一起来讨论qq群;264711626
2014-06-05 21:25
快速回复:求高手解释一下这程序怎么运行的?谢谢!
数据加载中...
 
   



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

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