Bonjour

Je viens de trouver un problème assez bizarre dans un simple code qui est censé afficher une chaine de caractères que je récupère avec gets.
Je vous met le petit code que j'ai trouvé:

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
26
27
28
29
30
31
#include<iostream>
 
int main()
{
	try
	{
		// *vars
		char print='N';
		char text_chars[10];
 
		// *get text
		printf("Enter text : ");
		gets(text_chars);
 
		// *print out
		if(print=='O')
		{
			printf("I read : %s\n",text_chars);
			getchar();
		}
		else
		{
			printf("Unreachable code\n");
			getchar();
		}
	}
	catch(...)
	{
	}
	exit(0);
}

A première vu peu importe la chaine que l'on rentre, il ira toujours dans le bloc else pour afficher à l'ecran "unreachabe code".

Or on m'a fait essayer la chaine ci-contre: abcdefghijklmnopqrstuvwOyz et il se trouve qu'il va dans le bloc if... Et là je n'arrive pas à comprendre pourquoi. D'ailleurs peu importe la combinaison de lettre, si à la 24è on a un O alors il ira dans la condition "if".

Si quelqu'un a une réponse à ce problème, je suis preneur !!

Merci!

Fx007