Javscript

Bonjour,
J'ai vu que l'on peut utiliser le javascript sur le serveur d'entraînement. De ce que j'ai pu voir, c'est bien avec node.js que c'est géré, cependant, je n'arrive pas à gérer le stdin. Chez moi, tout fonctionne à merveille, mais dès que j'envoie mon code sur le serveur, c'est comme si rien n'arrivait sur l'entrée standard.
Voici le code que j'utilise pour récupérer les données :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
var buffer = "";
process.stdin.resume();
process.stdin.on("data", function(data){
    buffer += data.toString();
    if(buffer.split("\n").length == 2){
        args = buffer.split("\n");
        main(parseInt(args[0]));
        process.exit();
    }
});

J'ai testé en écrivant les données dès qu'on les reçoit, mais rien ne s'affiche. Pourtant, console.log fonctionne bien vu qu'en mettant console.log(process), j'ai bien les informations de base. D'ailleurs, je me permet de signaler que votre version de node est très loin d'être à jour : vous utilisez la version 0.4 alors que la version actuelle est la 0.10

En fait, je viens de refaire un test, et j'ai l'impression que tout ce qui est asynchrone ne fonctionne pas. Par exemple, avec setTimeout(callback, 1), la callback n'est jamais exécuté.

Voilà, j'espère que ça pourra être réglé avant le début des épreuves.

Ok, merci.
Du coup, le problème à l'air de venir du process.exit() qui permet de terminer le programme (puisqu'il a fini son travail) mais que le serveur n'a pas l'air de bien apprécier. Je l'avais mis parce que sinon le programme s'attends à continuer à recevoir des données et donc continue de fonctionner. En fait, il suffit de rajouter process.stdin.pause() dès que l'on a récupéré toutes les données que l'on veut pour que ça fonctionne partout.

EDIT : en fait, non. Le problème est pas réglé et le problème refait surface à l'exercice sur le QI. Mon programme passe les tests 1 et 2, mais ne répond absolument rien au test 3 ce qui est absurde...

Voici le code utilisé si ça peut aider : http://pastebin.com/uDZFFLXL

Oui, apparemment le programme de validation ne met pas forcément le retour à la ligne à la fin de la dernière ligne, ce qui posait problème.

Répondre au sujet

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