1

我想替换 temp.replace

(QString("/"), QString("\"));

在这里我收到错误错误 C2001:常量
错误 C2275 中的换行:'QString':非法使用这种类型作为表达式

如何将“/”替换为“\”


谢谢4你的回答。但直到现在我还没有解决我的问题。请检查我的代码

// 转换为 wchar_t*

size_t origsize = strlen(toChar) + 1;

const size_t newsize = 100;

size_t convertedChars = 0;

wchar_t wcstring[newsize];

mbstowcs_s(&convertedChars, wcstring, origsize, toChar, _TRUNCATE);

wcscat_s(wcstring, L"\\*.*\0");

wcout << wcstring << endl; // C:\Documents and Settings\softnotions\Desktop\Release\*.*



SHFILEOPSTRUCT sf;

memset(&sf,0,sizeof(sf));

sf.hwnd = 0;

sf.wFunc = FO_COPY;

 //sf.pFrom =wcstring;  /* when giving wcstring i am not getting answer */

  sf.pFrom = L"C:\\Documents and Settings\\softnotions\\Desktop\\Release\\*.*\0";

   wcout << sf.pFrom  <<endl;   // C:\Documents and      Settings\softnotions\Desktop\Release\*.*

wcstring 和 sf.pFrom 都相同,然后在分配 sf.pFrom =wcstring; 时没有得到答案;

4

2 回答 2

10

通过用另一个转义它\

"\\"

这是关于转义如何在字符串中工作的一般 C/C++ 问题。由于\用于转义,因此在字符串中具有特殊含义,因此应自行转义。


编译器抛出的错误是它看到第二个字符串常量一直到行尾,因为\"它阻止了它结束字符串。

于 2010-03-29T11:18:21.713 回答
4

下面的帮助是针对 Qt4 库的!

如果您需要规范化文件绝对路径,您可能需要使用toNativeSeparators函数。以下是关于它的 Qt Assistant 信息:

QString QDir::toNativeSeparators ( const QString & pathName ) [静态] 返回带有“/”分隔符的 pathName,该分隔符转换为适用于底层操作系统的分隔符。

在 Windows 上,toNativeSeparators("c:/winnt/system32") 返回 "c:\winnt\system32"。

返回的字符串可能与某些操作系统上的参数相同,例如在 Unix 上。

这个函数是在 Qt 4.2 中引入的。

另请参见 fromNativeSeparators() 和 separator()。

于 2010-03-29T12:30:42.050 回答