Comme le dit le titre, je veux faire une v�rification d'input pour qu'il ne soit possible de n'entrer que des lettres, l� sa va, mais, mon code me renvoi false quand il rencontre un accents.
Quelqu'un a une id�e pour que isAlpha prenne en compte les accents?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 inline bool isAlpha(const string & s) { static const char alpha[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÄÅÇÈÀÉÑÖÜàâçèéêîôùûé"; if (s.empty()) return false; for (int i = 0; i < s.size(); i++) { if (!((s[i] == ' ') || (s[i] == '-') || strchr(alpha, s[i]) != NULL)) return false; } return true; } // J'appelle cette fonction quand je veut faire une vérification. string inputAlpha() { string input; bool valide = false; do { getline(cin, input); valide = isAlpha(input); if (!valide) cout << "N'entrer que des lettres, espaces et tirets" << endl; } while (!valide); return input; }
La bonne nouvelle c'est qu'il ne plante pas (V) (;,,;) (V)
�dit:
Je sais pas si sa influence, mais dans mon main j'utilise un SetConsoleOutputCP(1252)
Sur mon ordinateur les accents son afficher mais pas sur un autre.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 #include <windows.h> UINT default_codepage = GetConsoleOutputCP(); void main() { SetConsoleOutputCP(1252); //Le code du main.. SetConsoleOutputCP(default_codepage); }
Partager