Qstring replace не работает нормально - PullRequest
1 голос
/ 29 марта 2010

я хочу заменить 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;

Ответы [ 2 ]

10 голосов
/ 29 марта 2010

Избегая его с другим \:

"\\"

Это общий вопрос C / C ++ о том, как экранирование работает внутри символьных строк. Поскольку \ используется для экранирования и, следовательно, имеет особое значение внутри строки, он должен быть экранирован сам.


Ошибка, выдаваемая вашим компилятором, заключается в том, что он видит вторую строковую константу, идущую до конца строки, поскольку \" не позволяет ей завершить строку.

4 голосов
/ 29 марта 2010

Справка ниже предназначена для библиотеки 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 ().

...