1

temp.replaceを置き換えたい

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

ここでエラー C2001 が発生しています: 定数
エラー C2275 の改行: 'QString' : この型を式として不正に使用しています

「/」を「\」に置き換えるにはどうすればよいですか


ありがとうございます。しかし、今まで私は自分の問題を分類していませんでした。私のコードを確認してください

// 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++ の落とし穴です。はエスケープに使用され、文字列内で特別な意味を持つため\、それ自体をエスケープする必要があります。


コンパイラによってスローされるエラーは、2 番目の文字列定数が行末まで続くことを確認\"することです。これは、文字列を終了できないためです。

于 2010-03-29T11:18:21.713 に答える
4

以下は Qt4 ライブラリのヘルプです。

ファイルの絶対パスを正規化する必要がある場合は、toNativeSeparators関数が必要です。これに関するQtアシスタントの情報は次のとおりです。

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 に答える