2010-03-29 7 views
1

je veux remplacer temp.replaceQSTRING remplacer ne fonctionne pas bien

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

Ici, je reçois une erreur erreur C2001: retour à la ligne en constante
erreur C2275: « QString »: utilisation illégale de ce type comme une expression

Comment puis-je remplacer "/" avec "\"


thakns 4 ur réponse. Mais jusqu'à maintenant je n'ai pas réglé mon problème. S'il vous plaît vérifier mon code

// Convertir un 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\*.* 

Les deux wcstring et sf.pFrom sont les mêmes alors y pas gettng réponse lors de l'attribution sf.pFrom = wcstring;

Répondre

10

En échapper avec un autre \:

"\\" 

Ceci est un C/C++ Gotcha générale sur la façon dont les œuvres s'échappant à l'intérieur des chaînes de caractères. Puisque \ est utilisé pour s'échapper et a donc une signification spéciale à l'intérieur d'une chaîne, il devrait être lui-même échappé.


L'erreur lancée par votre compilateur est qu'il voit la seconde constante de chaîne allant jusqu'à la fin de la ligne, depuis \" l'empêche de mettre fin à la chaîne.

4

L'aide ci-dessous est pour la bibliothèque Qt4!

Si vous devez normaliser le chemin absolu du fichier, vous pouvez utiliser pour vous la fonction toNativeSeparators. Voici les informations Qt Assistant sujet:

QString QDIR :: toNativeSeparators ( const QString & pathName) [statique] retour nom_du_canvas avec les '/' séparateurs convertis aux séparateurs qui sont appropriés pour le système d'exploitation sous-jacent .

Sous Windows, àNativeSeparators ("c:/winnt/system32") renvoie "c: \ winnt \ system32".

La chaîne retournée peut être la même que l'argument sur certains systèmes d'exploitation , par exemple sur Unix. Cette fonction a été introduite dans le Qt 4.2.

Voir aussi deNativeSeparators() et separator().

Questions connexes