| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1519 人关注过本帖
标题:最近论坛里的朋友给写了一个程序,我对这个程序有些问题要问下,请大家帮忙 ...
只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
#define stdin  (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-30 10:15
lintaoxe
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-4-10
收藏
得分:0 
  刚刚想了一个问题  就是你知道errno.h??里面有错误宏定义
如果有错误errno变量会自动存贮错误信息,,所以那段代码真是写的很次。
比如打个比方  输入错误  可以改为  
errno=  fgets()....
if errno =READ_ERROR.//我打比方的宏定义,具体要看手册

              怎么作。。

else eror=....//
{   怎么作

有事到      http://./shawn_rin  留言
2008-06-30 10:24
xzhjqq
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-3-11
收藏
得分:0 
[bo][un]himpo[/un] 在 2008-6-28 17:03 的发言:[/bo]

fgets和fprintf都是函数。。。

学到文件那一章节就知道了。。

是文件的输入输出
2008-06-30 11:54
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
呵呵,谢谢大家的回贴!
结论:虽然有些东西还是不明白,也许是自己学习还不太深入……不过谢谢大家,我也基本了解了这个程序大多的环节!谢谢各位!

编程小菜
2008-07-03 20:16
初中毕业
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-7-2
收藏
得分:0 
这道程序是错误的~~没有打开文件就读
while(fgets(buf,MAX_LINE,stdin) != NULL)错误
fgets读~~(buf数组,读80个char型的字母放到bufMAX_LINE,stdin文件指针)
这道程序是错误的没什么好说的~全是文件~~连文件打开都没有~~
2008-07-03 22:03
qGemini
Rank: 1
等 级:禁止访问
帖 子:100
专家分:0
注 册:2008-6-28
收藏
得分:0 
[bo][un]初中毕业[/un] 在 2008-7-3 22:03 的发言:[/bo]

这道程序是错误的~~没有打开文件就读
while(fgets(buf,MAX_LINE,stdin) != NULL)错误
fgets读~~(buf数组,读80个char型的字母放到bufMAX_LINE,stdin文件指针)
这道程序是错误的没什么好说的~全是文件~~连文件打开 ...

你不知道stdin是标准文件输入流?
拜托你不懂别乱帮

Gemini  C/C++群57751397
本人不对自己的言论负责

http://
2008-07-03 22:06
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
ferror()函数检查stream(流)中的错误, 如果没发生错误返回0,否则返回非零. 如果发生错误, 使用perror()检测发生什么错误.

—>〉Sun〈<—
2008-07-04 00:07
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
#include <stdio.h>
#define MAX_LINE  80   // 81 比较好

int main(void)
{
    int i,
    state,
    count = 0;

    char buf[MAX_LINE];

    while(fgets(buf, MAX_LINE, stdin) != NULL)  // 从stdin(一般为键盘)获取MAX_LINE个字符的字符串,存入buf字符数组
    {                                           // stdin 中的字符串为80,那么 sizeof(buf) == 79,因为需要 '\0'
        for(i = 0; buf[i] != '\0'; ++i)
        {
            if(buf[i] != ' ' && buf[i] != '\n' && buf[i] != '\t')
                state = 1;
        }
               
        if(buf[i-1] == '\n' && state)
        {
             ++count;
             state = 0;
        }
    }                                                
        
    if(feof(stdin))                   // 到达文件(stdin)尾,则返回非0
    {
        fprintf(stdout,"no-space lines :\t%d",count);   // 同 printf()
                                                     // stdout 为屏幕,这里
                                       // 等同于 printf("no-space lines :\t%d",count);
        return 0;
    }
        
    if(ferror(stdin))            // 标准输入(stdin)有错误,则返回非0  // 我没这么监测过
    {
        fprintf(stderr, "read file error!\n");
        return 1;
    }
    return 0                                             
}

—>〉Sun〈<—
2008-07-04 00:38
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
话说……几乎没有遇到过标准输入流有error的……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-04 08:35
快速回复:最近论坛里的朋友给写了一个程序,我对这个程序有些问题要问下,请大家 ...
数据加载中...
 
   



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

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