有关文件读写的小问题

darcymei 2003-12-05 01:26:05
char sql[60]={"Insert Into Position(Point,PointNum,Color)\nValues ('"};
用fwrite(sql,sizeof(char),52,ofp);可以把\n写入
但是用CFile的Write( const void* lpBuf, UINT nCount );写入\n就成为乱码,请问是为什么....
...全文
22 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
darcymei 2003-12-06
  • 打赏
  • 举报
回复
up
darcymei 2003-12-06
  • 打赏
  • 举报
回复
#include <afx.h>
#include <iostream>
using namespace std;

int main()
{
char sql[60]={"Insert Into Position(Point,PointNum,Color)\nValues ('"};
FILE *ofp= fopen("111.txt","w");
fwrite(sql,sizeof(char),52,ofp);
CFile oFile("112.txt",CFile::modeCreate|CFile::modeWrite );
oFile.Write(sql,52);
return 0;
}
神功智能 2003-12-06
  • 打赏
  • 举报
回复
还有要表示'\'的话就要 '\\' 比如文件名字符串: c:\\mly\\mly.exe
神功智能 2003-12-06
  • 打赏
  • 举报
回复
加'\'表示 转义字符啊,\n换行,\r回车,\ddd(8进制代表的字符),\xhh(16进制代表的字符)

所以这样也行
char sql[60]={"Insert Into Position(Point,PointNum,Color)\15\12Values ('"};
darcymei 2003-12-06
  • 打赏
  • 举报
回复
谢谢楼上的两位
刚才看了下\10\13在字符串里好像表示的是8进制的ascii码,和单个字符不一样,是这样吗?
神功智能 2003-12-06
  • 打赏
  • 举报
回复
char sql[60]={"Insert Into Position(Point,PointNum,Color)\xd\xaValues ('"};
这样不也行吗,呵呵.
liushu01 2003-12-06
  • 打赏
  • 举报
回复
windows 下文件换行为 "\r\n",将sql改成下面的样子就好了

char sql[60]={"Insert Into Position(Point,PointNum,Color)\r\nValues ('"};
seilfer2000 2003-12-06
  • 打赏
  • 举报
回复
我也碰到过这个问题, 你可以用CStdioFile类 ,

ReadString Reads a single line of text.
WriteString Writes a single line of text.
用这两个函数对TXT操作就行了,别的和CFILE都一样
tankcookie 2003-12-05
  • 打赏
  • 举报
回复
CFile的Write你不会是写成2进制了吧
fierygnu 2003-12-05
  • 打赏
  • 举报
回复
nCount给了多少?Write返回值看了吗?还是把代码都贴上来吧。
everard 2003-12-05
  • 打赏
  • 举报
回复
不会帮你up 一下。

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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