Demi finale 2006 : lexeur

Hello,

J'ai un petit problème: Je passe bien les donnees pour les input 1 2 3 mais pour le 4 ca coince.
Et le resultat est assez etrange:

Mon programme ne renvoie rien, et ce qui devrait être renvoyé est rien... Serait ce pour proteger l'input ou est ce une erreur?

Ah, justement, j'ai une question par rapport au C++ :

C'est normal que j'arrive pas à enregistrer les espaces/ sauts de lignes avec un cin?
Genre si je fais (j'ai remplace les par les fleches, sinon ca plante)

1
2
3
4
5
char c;
do
{
cin ->c;
cout} while (c!='\0');

avec l'entree "blabla quarante-deux prologin j'ai faim"
ca me donne "blablaquarante-deuxprologinj'aifaim"
et en plus ca s'arrete pas parce que le cin ne prend meme pas la valeur de '\0'...

Ca m'embete ce truc , je sais pas comment faire pour avoir les espaces , donc sur les exos de chaines de caracteres j'utilise souvent le C, qui est nettement moins sympa...

http://www.cplusplus.com/reference/iostream/istream/

En gros :
_ >> c'est pour lire une entrée formatée. Donc ça saute les espaces, les blancs, les sauts de ligne.
_ Si tu veux lire des données non formatées, utilise get.
_ Mais si c'est pour en arriver là, autant utiliser scanf et include "cstdio".
_ Pour savoir quand s'arrêter avec cin, la méthode classique est de tester la valeur de retour :

char c;
while (cin >> c) { cout

Merci beaucoup!!!

Sinon je viens de corriger mon code ( est ce que les anti-slash non suivis de t sont consideres comme des strings? ( genre \\a donnerait STRING ou \\\t donnerait STRING SPACE ) ) mais il ne passe toujours pas le dernier test, je ne sais pas pourquoi... ( toujours une chaine vide dans l'output que devrait rendre mon programme , et toujours une chaine vide que rend mon programme.... je trouve ca assez bizarre, si c'est pour ne pas donner d'indications, j'aurais trouvé plus logique qu'il y ait " Pas de details " plutot que cette correction incomprehensible )*

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.