麻烦c语言高手帮忙写个关于文件操作的函数。

是这样,我经常要进行一些数据的计算和筛选,用c语言实现,因为数据量大,需要写在文件里面以便查看,但是每次的要求不一样,每次重新写文件相关的语句有点麻烦,因此我想请高手帮我... 是这样,我经常要进行一些数据的计算和筛选,用c语言实现,因为数据量大,需要写在文件里面以便查看,但是每次的要求不一样,每次重新写文件相关的语句有点麻烦,
因此我想请高手帮我设计一个函数,
/*
谢谢各位高手了!
功能描述:
假如我在屏幕上显示的语句是这样的:printf("%d%d\n",m,n);
那*string="%d%d\n",m,n
然后效果就是在C:\out.txt里面写相同的字符。
文件路径不变化
style==1 时,是追加数据
style==0 时,是覆盖数据
每次我只需调用即可,不用写FILE *fp之类。
另外:为了提高效率,最好只进行一次打开和关闭操作,不管此函数调用多少次。
*/
void PR(char *string, int style)
{

}
展开
 我来答
L_o_o_n_i_e
2011-10-11 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:6025万
展开全部
换一种思维。
向屏幕输出是 向 stdout 输出。fprintf(stdout,"%d%d\n",m,n);
向文件输出是 向 my_out 输出。fprintf(my_out,"%d%d\n",m,n);
其中 FILE *my_out. stdout 实际上是 FILE *,系统定义了。

所以,你可以把你的输出 定义为一个函数fun(..),参数是 FILE *fp.
向屏幕输出,用 fun(stdout),向文件输出是fun(my_out).

如果你有多种输出格式
fun(FILE *fp, int type){
switch(type){
case 1: 输出到fp...break;
case 2: 输出到fp...break;
,,
default: break:
}
}
追问
这个fp的问题,我已经说过了哦。我不想在程序的任何地方重新定义FILE *fp
除了您给的函数以外。
也就是说,您的函数每次调用都要重新执行打开和关闭操作,是不是?
追答
每次调用都要重新执行打开和关闭操作,是不是?
这由你自己决定。
你可以只做一次打开,最终关闭。
也可以一次一次打开和关闭。
这是很简单的事情。
=========
还有简单办法,打命令时用 转向到文件。这样,程序里连 打开和关闭操作都不需要。
程序里 用 原来的 fprintf(stdout,"%d %d\n",m,n); 或 printf("%d %d\n",m,n);
打命令时用:
my_prog.exe > C:\\out.txt (新文件)或
my_prog.exe >> C:\\out.txt (附加文件)
东西就在 C:\out.txt 里了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式