| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 983 人关注过本帖
标题:一个scanf函数不需要我赋值就被自动赋值,调试测出来自动赋值为'10',不知道 ...
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
以下是引用yz912498286在2015-9-20 19:50:39的发言:

用fflush<stdin>解决了,这个缓冲的知识在谭浩强c语言课本上没看到呀?这些知识是不是属于文件哪一张的内容呀

那不是C標準中有的東西,屬於非ANSI C範疇。

授人以渔,不授人以鱼。
2015-09-20 20:00
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
http://www. 是这个文档里的东西
2015-09-20 20:08
yz912498286
Rank: 1
等 级:新手上路
帖 子:49
专家分:3
注 册:2015-8-24
收藏
得分:0 
回复 12楼 hjx1120
有没有这个方面的中文资料呀?英文不好!!!!
2015-09-20 20:10
yz912498286
Rank: 1
等 级:新手上路
帖 子:49
专家分:3
注 册:2015-8-24
收藏
得分:0 
回复 11楼 TonyDeng
这个方面的资料在哪看呀?;李掌柜那个是英文的
2015-09-20 20:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用yz912498286在2015-9-20 20:12:00的发言:

这个方面的资料在哪看呀?;李掌柜那个是英文的

這個問題在論壇上多次解答過,很詳細。

授人以渔,不授人以鱼。
2015-09-20 20:12
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
刚刚翻了下《C标准库(英文版)》 第236页
7.9.5.2 The fflush function
这还不算是标准库里的东西啊!
http://www.
这本书可是花了60块大洋买的,不会是假的吧
2015-09-20 20:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用hjx1120在2015-9-20 20:18:35的发言:

刚刚翻了下《C标准库(英文版)》 第236页
7.9.5.2 The fflush function
这还不算是标准库里的东西啊!
http://www.
这本书可是花了60块大洋买的,不会是假的吧


C標準並不規定這個函數對輸入流有效!你看到的是對輸出流有效。

授人以渔,不授人以鱼。
2015-09-20 20:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看看置頂的帖子,裏面有這個問題的解答。

授人以渔,不授人以鱼。
2015-09-20 20:22
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
受教了
2015-09-20 20:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我把它引下來給你:

以下是引用TonyDeng在2013-8-11 12:30:51的发言:

13.24 既然 fflush() 不能, 那么怎样才能清除输入呢?

这取决于你要做什么。如果你希望丢掉调用 scanf() (参见问题 12.16 - 12.17) 之后所剩下的换行符和未预知的输入, 你可能需要重写你的  scanf() 或者换掉它, 参见问题 13.18。或者你可以用下边这样 的代码吃掉一行中多余的字符
     while((c = getchar()) != '\n' && c != EOF)
        /* 丢弃 */ ;

你也可以使用 curses 的 flushinp() 函数。

没有什么标准的办法可以丢弃标准输入流的未读取字符, 即使有, 那也不够, 因为未读取字符也可能来自其它的操作系统级的输入缓冲区。如果你希望严格 丢弃多输入的字符 (可能是预测发出临界提示), 你可能需要使用系统相关的 技术; 参加问题 20.1 和 20.2。

参考资料: ; [H&S, Sec. 15.2]。

授人以渔,不授人以鱼。
2015-09-20 20:32
快速回复:一个scanf函数不需要我赋值就被自动赋值,调试测出来自动赋值为'10', ...
数据加载中...
 
   



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

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