在 vc里面,从一个编辑框中间取到某文件的路径,比如是 d:\asd.txt,但是我需要把这路径传另外一函数,也就是要 转换为 d:\\asd.txt,怎么变换啊 ?谢谢
解决方案 »
- 关于钩子的使用
- DLL要导出一个class,必须是MFC扩展dll么? 普通dll能不能导出类?
- 线程消息问题 应该挺简单的吧
- 求 Gips Voice Engine Lite语音引擎 开发包, 谢谢
- 【菜鸟问大侠】mfc程序中CView窗口是在什么地方调用showwindow updatewindow进行窗口显示与更新的?
- 对话框图象生成程序FOR QQ
- 有人用过浩方对战平台吗?它的点对点的连接做得不错,怎么才能实现这种大流量的点对点的连接啊??
- (高分相送!!!)如何获得当前光标的样式?
- 介绍好的vc的书,我刚开始学!
- 我的托盘程序
- mfc菜单
- 游戏中有多个单位,是否也需要做线程优化,以配合 Intel
不过,好像不需要改成两个\\吧
一定要改就replace("\\","\\\\");
双反斜杠其实只是给编译器看的,就比如这样一个字符串"\n\\",编译器编译的时候,看到第一个\并不知含义,当读到n的时候,知道是一个换行,就直接在编译的时刻,将\n这两个字节的东西替换成了一个字节的十六进制的0A,同样的\\也是在编译时刻就被直接替换成了\,也就是一个字节的5C。
这一点你可以在编译完成后的exe里面用ultra-edit打开进行证实,比如写一句const char* p = "这是测试用的\\\n",编译完成以后,用ultra-edit查找“这是测试用的”,找到后看看后面两个字节是不是5C 0A。
正是因为"\\"这类的转译字符只是给编译器看的,所以内存里面实际上也是不存在“双反斜杠”的,编辑框取到"d:\asd.txt",而这个就是内存中本应该存放的格式,不需要转换。
(printf或者scanf里面的"%%"例外,这个不是给编译器看的,而是这两个函数自己做的转换)
顶! \是转义字符,是为了让后面的字转义
为什么要\n \\ \t \r 是因为要让编译器知道这不是字符n ,t,r , 而是 其他的东西
另外保存到变量里的“d:\\asd.txt”其实就是“d:\asd.txt”