请教="D:\Java\c"如何转换D:\\Java\\c

llt91145 2009-08-10 04:33:56
CString s="D:\Java\c";
请问如何转换成"D:\\Java\\c",无法用replace,并且CString('\');的表达式也有错误
在线求解,谢谢各位大虾了
...全文
128 点赞 收藏 23
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2009-08-10
感觉18楼的应该对,如果你选择的文件没有在路径中包含空格的话
[Quote=引用 22 楼 llt91145 的回复:]
提示路径错误,谢谢了
[/Quote]
回复
llt91145 2009-08-10
提示路径错误,谢谢了
回复
rdsnow 2009-08-10
貌似没有哪里有必要做这样的修改!

"\\"只是给编译器看的,在内存里就是一个 "\"
回复
rendao0563 2009-08-10
个人觉得你还是自己摸索一下。不然你连这个都没弄明白以后怎么做开发。都有那么个过程。不要急。
回复
flymoon99 2009-08-10
[Quote=引用 16 楼 llt91145 的回复:]
引用 11 楼 rendao0563 的回复:
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了

这里filename是字符串不是你定义的变量。。。这都分不清楚?

那请问我该怎么传参数?
[/Quote]

system("D:\\miao\\hash.exe -filename");//试下这个,加个-
回复
dengxuxing 2009-08-10
CString filename = dlg.GetPathName();
filename="D:\\miao\\hash.exe "+filename;
system(filename );


回复
flymoon99 2009-08-10
\的作用就是作为转义字符用的,字符串中的\\就是一个\的意思。
如果你要申明一个字符串中带有\的话,就必须用\\
另外,同理,/也必须用\/来表示
回复
llt91145 2009-08-10
[Quote=引用 11 楼 rendao0563 的回复:]
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了

这里filename是字符串不是你定义的变量。。。这都分不清楚?
[/Quote]
那请问我该怎么传参数?
回复
MoXiaoRab 2009-08-10
差不多
回复
幸福官 2009-08-10
[Quote=引用 11 楼 rendao0563 的回复:]
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了

这里filename是字符串不是你定义的变量。。。这都分不清楚?
[/Quote]

这位兄弟眼睛比较敏锐!
回复
llt91145 2009-08-10
[Quote=引用 9 楼 arong1234 的回复:]
这个不需要转换的,手写的代码和通过dlg.GetPathName获得的情况是不需要的。后者你看到的虽然是单个\,但是实际上已经等价于你手写时的2个反斜杠了。如果你遇到错误,应该时另外有问题
引用 7 楼 llt91145 的回复:
这是部分代码
CFileDialog  dlg(TRUE,
            _T("bmp"),
            _T("*.bmp"),
                OFN_EXPLORER,
                _T("图像文件(*.jpg)|*.jpg|文本文件(*.bmp)|*.bmp|所有文件(*.*)|*.*|"));

if( IDOK == dlg.DoModal() ){ 
CString  filename = dlg.GetPathName();
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了

[/Quote]


system("D:\\miao\\hash.exe D:\\新建文件夹\\pic1.JPG");

但这么用情就可以出来结果,是不是参数传递问题?
回复
lpaxuexi 2009-08-10
函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("About to spawn command.com and run a DOS command\n");
system("dir");
return 0;
}

命令写好
回复
rendao0563 2009-08-10
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了

这里filename是字符串不是你定义的变量。。。这都分不清楚?
回复
llt91145 2009-08-10
[Quote=引用 2 楼 lygfqy 的回复:]
首先在c中赋值就不应该采用\来进行,因为它代表的是转义字符,如果要赋值成\应该采用\\
[/Quote]
str.replace("\\", "\\\\");
这么写还是出错~,我是新手,各位帮帮忙吧
回复
arong1234 2009-08-10
这个不需要转换的,手写的代码和通过dlg.GetPathName获得的情况是不需要的。后者你看到的虽然是单个\,但是实际上已经等价于你手写时的2个反斜杠了。如果你遇到错误,应该时另外有问题
[Quote=引用 7 楼 llt91145 的回复:]
这是部分代码
CFileDialog  dlg(TRUE,
            _T("bmp"),
            _T("*.bmp"),
                OFN_EXPLORER,
                _T("图像文件(*.jpg)|*.jpg|文本文件(*.bmp)|*.bmp|所有文件(*.*)|*.*|"));

if( IDOK == dlg.DoModal() ){ 
CString  filename = dlg.GetPathName();
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了
[/Quote]
回复
llt91145 2009-08-10
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了
如果用对的话会输出信息,但得到的只有黑屏,exe本身没有问题的
回复
llt91145 2009-08-10
这是部分代码
CFileDialog dlg(TRUE,
_T("bmp"),
_T("*.bmp"),
OFN_EXPLORER,
_T("图像文件(*.jpg)|*.jpg|文本文件(*.bmp)|*.bmp|所有文件(*.*)|*.*|"));

if( IDOK == dlg.DoModal() ){
CString filename = dlg.GetPathName();
system("D:\\miao\\hash.exe filename");//这里我直接调用的话就出错了
回复
danxuezx 2009-08-10
[Quote=引用 4 楼 fishion 的回复:]
你是怎么得到的
[/Quote]
up
回复
lpaxuexi 2009-08-10
自己写个函数,碰到 '\'就转成 \\。不知道是不是能达到你的目的?
回复
fishion 2009-08-10
你是怎么得到的
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告