| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:求高手解释一下这程序怎么运行的?谢谢!
取消只看楼主 加入收藏
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求高手解释一下这程序怎么运行的?谢谢!
#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
独自等待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
独自等待OL
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-29
收藏
得分:0 
回复 7 楼 xsw07122269
太感谢了,刚刚把MAX改为2之后试了一下果然是这样,懂了,还是我太笨了!呵呵!谢谢!

不懂所以才学。。。
2014-06-02 20:32
快速回复:求高手解释一下这程序怎么运行的?谢谢!
数据加载中...
 
   



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

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