关于同时处理标准I/O与文件I/O的问题!!!

skyliuxu 2012-05-31 07:17:41
请教朋友们一个问题,自己想不太明白该怎么办。简单一点说我的问题就是——如果同时处理标准I/O与文件I/O的话,函数该怎么写,比如下面这个例子:
int getword(char *, int);
int getch(void);
void ungetch(int);
这是三个函数的原型,其中涉及的都是标准输入输出,那么如果我想从某个文件读写数据呢?我自己写了一个是按下面的原型写的:
int getword(char *, int, FILE *fp);
int getch(FILE *fp);
void ungetch(int);
这样确实可以处理两种情况了,但是感觉不好看,明显不如上面的简洁明了。请论坛的朋友们说说自己的看法,小弟不胜感激!!!

...全文
130 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
giant7 2012-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
请教朋友们一个问题,自己想不太明白该怎么办。简单一点说我的问题就是——如果同时处理标准I/O与文件I/O的话,函数该怎么写,比如下面这个例子:
int getword(char *, int);
int getch(void);
void ungetch(int);
这是三个函数的原型,其中涉及的都是标准输入输出,那么如果我想从某个文件读写数据呢?我自己写了一个是按下面的原型写的:
in……
[/Quote]

一般不建议用户函数和库函数同名吧! 如果自己想做的话,建议楼主自己换个名字,这样更好维护
qq120848369 2012-05-31
  • 打赏
  • 举报
回复
真抽象。
  • 打赏
  • 举报
回复
我的想法是 你可以先将标准输入输出 句柄保存,然后重定向新的文件句柄,等用完了再重新重定向回来。

重定向相关函数有:
SetStdHandle:获得标准的输入/输出 句柄
GetStdHandle:设置标准输入/输出 句柄

C FILE *, Posix接口文件标示 转换:_fileno
Posix到OS的句柄转换: get_osfhandle


是这个吗。。。。

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧