| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 707 人关注过本帖
标题:帮忙看看这里的stdin是什么东东?
只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 10楼 TonyDeng
好像这样的重定向需要一个函数的,我在《C高级编程及实例剖析》里见过,可惜忘了,刚才想一起发给楼主,结构在书上翻了半天也没找到

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 21:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
在使用前把某个文件FILE*指给stdout就可以了,其实在程序内部本不需要这种指定,但在某些需要随时变换输入输出对象(比如调试复杂的数据时)会用到,此时用一个类似开关的机制切换是很方便的。

授人以渔,不授人以鱼。
2012-12-20 21:34
dreamfree
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2012-12-20
收藏
得分:0 
回复 10楼 TonyDeng
好的,谢了版主
2012-12-20 21:37
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
了解,学习了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 21:41
dreamfree
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2012-12-20
收藏
得分:0 
回复 12楼 TonyDeng
哦,就像:fp=fopen("wacky.txt","r");这句话是不是就是取wacky。txt的FILE指针,然后赋值给fp?我初学,摸不太清楚,呵呵
2012-12-20 21:42
dreamfree
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2012-12-20
收藏
得分:0 
回复 11楼 yaobao
真心感谢,才在论坛里问的第二个问题就这么热情,太温暖了,我初学的,呵呵
2012-12-20 21:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用dreamfree在2012-12-20 21:42:57的发言:

哦,就像:fp=fopen("wacky.txt","r");这句话是不是就是取wacky。txt的FILE指针,然后赋值给fp?我初学,摸不太清楚,呵呵

这个是打开磁盘上名为wacky.txt的文件,在程序内部用fp句柄来访问它,不用管FILE*的内部细节,只要知道这样打开文件之后,用fp可以访问数据就是了。涉及文件的部分,FILE*叫“句柄”,不叫“指针”,它的内部是非常复杂的,不是指针那么简单。句柄是C++中常见的概念,在C中最早接触的就是这个FILE*句柄。

授人以渔,不授人以鱼。
2012-12-20 21:48
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 17楼 TonyDeng
说道句柄我想起一个问题,T版,我用sizeof测fp->_ptr为什么得到的结果永远是4啊,_ptr不是指向文件字符串的吗?

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 21:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用yaobao在2012-12-20 21:53:52的发言:

说道句柄我想起一个问题,T版,我用sizeof测fp->_ptr为什么得到的结果永远是4啊,_ptr不是指向文件字符串的吗?

那是求指针的尺寸,不是求指针所指向的对象的尺寸。fp->_ptr事实上是一个指针,句柄也一样是指针,不过所指向的东西不是通常所以为的简单的一些数据和数据的组合。在C++中,对象可能包含函数代码的。FILE*类指针,不是指向文件字符串,在读写文件时,我们视它是字符串,但FILE*指针却并不是指向字符串,所以我们必须用fgetc()把文件句柄作为参数传入,让函数处理好后把结果反馈出来,这个黑盒过程可以视为获得字符串,但千万不要以为FILE*指向的就是字符串了。你没见过用*FILE解引用获得数据的吧?那就对了。

授人以渔,不授人以鱼。
2012-12-20 22:00
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 19楼 TonyDeng
哦 ,看来是我想多了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 22:06
快速回复:帮忙看看这里的stdin是什么东东?
数据加载中...
 
   



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

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