C++中函数 ofstream outfile,文件路径名的问题

我用ofstreamoutfile(PathName,ios_base::out);来把数据写到指定路径的txt文档中,其中,路径为:CStringPathName=st... 我用ofstream outfile(PathName,ios_base::out);来把数据写到指定路径的txt文档中,其中,路径为:CString PathName=string1+string2, 其中string1是通过一个MFC对话框程序选择的(比如C:\new\实验结果),string2="data.txt"(即文件名为data.txt)
我试了一下这个方法(PathName=string1+string2),应该是可行的,但不知为何,总是时而可以时而出错,错误为:实际保存为C:\new\实验结果data.txt,文本名字变成“实验结果data”了。。。
但有时是可以的:实际保存为C:\new\实验结果\data.txt
请问程序出啥错了?本人菜鸟,谢谢
展开
 我来答
天蝎神经侠侣
高粉答主

2015-06-26 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:716万
展开全部
C++中Txt文件读取和写入
一、ASCII 输出
为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 "ofstream" 来作输入输出。
如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来说很简单。 我们现在开始讲输出部分,首先声明一个类对象。
ofstream fout; 这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。
fout.open("output.txt"); 你也可以把文件名作为构造参数来打开一个文件.
ofstream fout("output.txt"); 这是我们使用的方法, 因为这样创建和打开一个文件看起来更简单. 顺便说一句, 如果你要打开的文件不存在,它会为你创建一个, 所以不用担心文件创建的问题. 现在就输出到文件,看起来和"cout"的操作很像。对不了解控制台输出"cout"的人, 这里有个例子。
int num = 150;
char name[] = "John Doe";
fout << "Here is a number: " << num << "/n";
fout << "Now here is a string: " << name << "/n"; 现在保存文件,你必须关闭文件,或者回写文件缓冲. 文件关闭之后就不能再操作了, 所以只有在你不再操作这个文件的时候才调用它,它会自动保存文件。回写缓冲区会在保持文件打开的情况下保存文件, 所以只要有必要就使用它。
sandamailcn
2009-12-22 · TA获得超过743个赞
知道小有建树答主
回答量:541
采纳率:0%
帮助的人:0
展开全部
你要简单判断一下string1末尾是否是\就行了.
int len = string1.length();
if( string[len-1] == '\\' ) {
PathName = string1+string2;
} else {
string1 += "\\";
PathName = string1+string2;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b35663564
2009-12-22 · 超过25用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:0
展开全部
string2="\data.txt"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式