C++ 调用一个自定义函数,并将里面的内容输出到文件

voidfunction(inti){……cout<<i;……}intmain(){intm=0;ofstreamfout;fout.open("a.txt");fout... void function(int i)

{
……
cout<<i;
……
}
int main()
{
int m=0;
ofstream fout;
fout.open("a.txt");
fout<<"the output is:";
function(m);
}
调用函数function后m 的值会输出到控制台,而不会输出达文件中,怎么样修改才能输出到文件a.txt中呢?
展开
 我来答
泷青梦s3
推荐于2016-04-13 · 超过43用户采纳过TA的回答
知道答主
回答量:84
采纳率:100%
帮助的人:66.4万
展开全部
你在function函数中使用的cout并不是输入到文件而是输出到控制台,要想输出到文件应当将输出流也传入到函数中
void function(ofstream &fout, int i)。在函数中使用fout便可以输出到文件
天蝎神经侠侣
高粉答主

推荐于2018-03-28 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:684万
展开全部
1, __cdecl(C调用约定.The C default calling convention)C/C++ 缺省调用方式
1)压栈顺序:函数参数从右到左
2)参数栈维护:由调用函数把参数弹出栈,传送参数的内存栈由调用函数来维护
(正因为如此,实现可变参数vararg的函数(如printf)只能使用该调用约定)
3)函数修饰名约定:VC将函数编译后会在函数名前面加上下划线前缀
4)每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大

2, __stdcall (Pascal方式清理C方式压栈,通常用于Win32 Api中)
1)压栈顺序:函数参数从右到左的压栈顺序
2)参数栈维护:被调用函数把参数弹出栈(在退出时清空堆栈)
 3)函数修饰名约定:VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数
ex. VC: int f(void *p) (编译后)-> _f@4(在外部汇编语言里可以用这个名字引用这个函数)

3, __fastcall (快速调用约定,通过寄存器来传送参数)
1)压栈顺序:用ECX和EDX传送前两个双字(DWORD)或更小的参数,剩下的参数仍旧自右向左压栈传送
2)参数栈维护:被调用函数在返回前清理传送参数的内存栈
3)函数修饰名约定:VC将函数编译后会在函数名前面加上"@"前缀,在函数名后加上"@"和参数的字节数

4, thiscall (本身调用,仅用于“C++”成员函数)
1)压栈顺序:this指针存放于CX/ECX寄存器中,参数从右到左的压栈顺序
2)thiscall不是关键词,因此不能被程序员指定
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
走过路过15137
2015-07-09 · TA获得超过7586个赞
知道小有建树答主
回答量:1763
采纳率:62%
帮助的人:153万
展开全部
C++ 调用一个自定义函数只要在主函数中调用就可以,将里面的内容输出到文件应当将输出流也传入到函数中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式