VC++ CString str,如何把str写入文本文件,怎样得到str大小(字节)

如题所述

额,你会文件操作么?以文本模式打开一个文件,输入你要的内容呗。如果这个方法你不会,因为涉及的只是比较多,懒得教你,用下一个方法。也可以调用系统命令,即使用system命令,如向D盘根目录下的a.txt输入“文本文件”可以这样做:system("echo 文本文件 >> D:\\a.txt");

注意,要输入的内容不能有空格,如果有空格,请在文本上添加双引号。
要输入的文件名(夹)也不能有空格,如有空格,加双引号。
要知道str大小,使用strlen()函数,即strlen(str); 注意,该函数在string.h内追问

首先感谢,其他的都不用你教,我都知道,我只想得到str的真实大小(字节),str是MFC的CString类定义的实例,CString对字符串的处理很方便,我需要把处理过的str存成文本文件。

追答

好吧,班门弄斧了。最近才开始学API……

追问

寻找了很久没发现CString类写入文件满意的答案,或许这个东西很简单,我没理解。
综合所给答案1.大多都是使用返回字符长度指定缓冲区大小,但这是错误的,缓冲区以字节为单位,字符却不一定;2.申请缓冲区大小难确定,会增代码复杂程度,切记,文件长度并不一定是字符长度;3.针对字符串读写的MFC函数一条一条的读,需要重新连接,很繁琐;4.每种写文件方法,文件尾会有差异。凡此种种,请高手明示,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-14
建议楼主看下文件操作,可以到codeforge 和codeproject上下载点开源的代码看看,这个是很基本的东西追问

文件读写操作各种方法都用过,是为了方便想找一个更加简洁的方式。

第2个回答  2012-09-14
str.GetLength();追问

这个返回的是字符(可能是Unicode)的长度,并不是缓冲区的大小。

相似回答