| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:请大家帮忙看一下这个程序,gets判断空行问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
他那個檢測方法根本上就是錯的

授人以渔,不授人以鱼。
2012-01-11 17:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
有空運行一下下面的代碼,琢磨琢磨該怎麼判斷,它會暴露一個你沒有想到的問題:全空格行是不是空行?

程序代码:
void main(void)
{
    char str[80];
    do
    {
        printf("str = ""%s"", ", gets_s(str, sizeof(str) - 1));
        printf("strlen(str) = %d\n", strlen(str));
    } while (str[0] != '\0');

    printf("\npress any key exit...");
    _getch();
}

授人以渔,不授人以鱼。
2012-01-11 17:48
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 12楼 TonyDeng
运行不了,gets_s用什么包含啊,查不到

酱油实习生
2012-01-12 19:28
kennel2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:157
注 册:2011-12-13
收藏
得分:0 
以下是引用墨清扬在2012-1-11 12:24:12的发言:

OJ给的范例没有结束符,还是说OJ用的系统不是win所以可以?
这句话不是特别准确,因为不同的OJ 用的系统也许不一样,如POJ可以在windows下搭建,而浙大的oj是运行在linux下的.
2012-01-12 19:39
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 14楼 kennel2009
所以就很疑惑啊……

酱油实习生
2012-01-12 20:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用墨清扬在2012-1-12 19:28:19的发言:

运行不了,gets_s用什么包含啊,查不到

gets_s()是gets()的安全版本,你如果用舊編譯器,仍用原來的gets()版本即可。

授人以渔,不授人以鱼。
2012-01-12 21:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
用gets()讀入行,即使是真正的空行,也不會返回EOF或NULL,它永遠指向str的地址。判斷空行,應該把讀入的行內容去頭去尾的空格之後判斷其strlen()字符數,這樣得到的如果是空字符串,才是空行。

授人以渔,不授人以鱼。
2012-01-12 22:42
快速回复:请大家帮忙看一下这个程序,gets判断空行问题
数据加载中...
 
   



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

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