Bonjour, voici le code qui ne marche pas
ce code ne m'affiche rienCode:
1
2
3
4
5
6
7
8
9
10 wchar_t a; wstring s; cin>>a; s.push_back(a); cin>>a; s.push_back(a); cin>>a; s.push_back(a); wcout<<s<<endl;
Version imprimable
Bonjour, voici le code qui ne marche pas
ce code ne m'affiche rienCode:
1
2
3
4
5
6
7
8
9
10 wchar_t a; wstring s; cin>>a; s.push_back(a); cin>>a; s.push_back(a); cin>>a; s.push_back(a); wcout<<s<<endl;
Salut
Essaye avec wcin.
ok merci beaucoup
bonsoir
bonjour, ca marche pour wstring mais pas pour wchar_t *
pourquoi? :? :cry:
Ca veut dire quoi "ça marche pas" ? Essaye d'être plus précis si tu veux des réponses... :roll:
Citation:
ca marche pour wstring mais pas pour wchar_t *
en executant le programme se bloque et demande si je veux faire debogageCode:
1
2
3wchar_t * w; wcin>>w;
Tu n'as pas alloué de mémoire pour ta chaîne.
C'est là que tu vois que tu as tout interêt à utiliser wstring.Code:
1
2 wchar_t w[512]; wcin >> w;
merci beaucoup j'ai fais ca
A++Code:
1
2
3
4 wchar_t * w; w=new(wchar_t); wcin>>w;
Là tu auras tout juste la place pour stocker le \0 final, c'est-à-dire que ton programme va bugger quoique tu tapes.
Je pense que tu devrais prendre le temps de comprendre ce que tu codes au lieu d'y aller à tâton.
bon le code ca marche bien
et je ne comprend pas ce que tu veux direCode:
1
2
3
4 wchar_t * w; w=new(wchar_t); wcin>>w;
Ca fonctionne parce que tu as de la chance. Avec une telle initialisation tu penses avoir de la place pour stocker combien de caractères ?
pourquoi utiliser un pointeur ? Pourquoi s'embêter avec un new ? (où est le delete ?)Citation:
Envoyé par sorari
wstring gère tout de manière fiable, à commencer par la taille.
http://c.developpez.com/faq/cpp/?page=strings
Comme te l'a dit Loulou tu n'as pas alloué assez d'espace.
Rien que de rajouter le delete devrait planter le programme:
pareil si tu fait un autre new derrière, ou simplement si tu rentres une chaine assez grande (quelques centaines de carcatères).Code:
1
2
3
4
5 wchar_t * w; w=new(wchar_t); wcin>>w; delete w;