0
votes

System.out.print ("calculatrice") ne montre pas de sortie lorsqu'il est suivi avec un scanner ou un bufferreader qui prend un système.in dans Intellij Idea

Donc, je veux faire une calculatrice de ligne de commande qui prend plusieurs arguments après le mot "calculatrice". Mais avec les codes suivants, je ne peux pas y parvenir. Dans ces deux méthodes, la gradle attend la lecture de la ligne avant d'afficher le mot "calculatrice".

à l'aide de scanner xxx

à l'aide de bufferreader xxx

Cependant, le système.out.println ("calculatrice") affiche le mot sans aucun problème. Mais ce n'est pas en ligne. Donc ça ne fonctionne pas comme je veux. Changer l'ordre des lignes de code n'a également pas aidé.

System.Console (). Printf () n'est pas non plus une option que j'utilise Intellij Idea. Alors, quelqu'un peut-il m'aider avec cela afin que je puisse obtenir un lecteur d'entrée en ligne. J'ai également essayé de synchroniser la méthode d'impression en la mettant en œuvre séparément dans une méthode. Cela n'a pas aussi fonctionné.

Enfin ce que je veux réaliser, c'est le format suivant

Calculator max 12 23 25 45

  • ici l'italique est l'entrée à lire.
  • la partie audacieuse doit être imprimée par le programme.

    Ceci est le code complet Entrez la description de l'image ici

    avant d'entrer en entrée la console ..

     Entrez la description de l'image ici < P> Après avoir entré l'entrée

     Entrez la description de l'image ici

    Dernière mise à jour

    donc je essayé de faire la même chose avec un projet maven. Les deux méthodes ci-dessus fonctionnaient parfaitement lorsque je l'ai fait avec un projet Maven dans Intellij.

    Par conséquent, il doit être quelque chose à faire avec la manière dont la méthode de galfie de Gradle. Je veux savoir s'il y a une chance que cela se produise?


3 commentaires

Appelez system.out.flush () Avant de commencer à traiter l'entrée après avoir effectué une sortie.


Changer impression () à println () .


Oui, PrintLN fonctionne. Mais je veux obtenir l'entrée dans la même ligne que "calculatrice" imprimée. Println ne fait pas ça.


4 Réponses :


-1
votes

appel system.out.flush () Avant de commencer le traitement de l'entrée après avoir effectué une sortie. L'IDE se connecte aux processus avec un tuyau et qui n'est pas automatiquement rincé dans chaque sortie.


1 commentaires

Je suis désolé mais cela ne semble pas fonctionner. system.out.print ("calculatrice"); System.out.flush (); Scanner SC = nouveau scanner (système.in); String Entrée d'entrée; INPUTString = SC.Next (); c'est ce que j'ai fait



-1
votes

au lieu de sc.nextline () Vous devez utiliser sc.next () .


3 commentaires

Mais le problème n'est pas que, Calculator Word n'est toujours pas affiché avant que l'utilisateur entrave des arguments sur la console.


Je suis en train de tester la partie ci-dessus uniquement dans une méthode principale. Dans un bâtiment utilisant la gradle.


J'ai ajouté mon ensemble de code et les sorties de la question.



1
votes

Ceci est un Bug lors de l'utilisation du plug-in Intellij Ideal OriTle qui a reçu une attention si peu d'attention que l'équipe Intellij semble pas si motivée à résoudre ce problème.

La seule solution de contournement que je pouvais comprendre est de sauter le plugin des grades et de Call Wrapper des grades directement de Intellij Idea. Pour ce faire, vous pouvez utiliser mon plug-in Intellij Idea Bref Grade Run avec des arguments ( GitHub Link ), ou Créez manuellement une configuration d'exécution qui invoque une enveloppe de grade à chaque fois que vous souhaitez exécuter votre programme. Je vous suggère d'essayer mon plugin d'abord et voyez si cela aide.

Pour créer manuellement une configuration d'exécution qui invoque Wrapper des grades, le moyen le plus simple consiste à passer par une configuration JAR dans Intellij Idea. Pour rendre cela possible, vous devez également corriger le gradle / wrapper / gradle-wrapper.jar 'S manifeste et ajouter un classement principal entrée . De cette façon, vous pouvez lancer une wrapper des grades de Intellij Idea et profiter system.out.print (...) .

Limitation : Cette approche ne vous permettra pas d'utiliser la fonctionnalité de débogueur intégrée car Intellij Idea tente de déboguer des enveloppes supérieures au lieu de votre programme actuel.


1 commentaires

Oui, je l'ai également mis dans la communauté des grades. Merci de votre aide.



2
votes

J'ai pu obtenir la sortie en modifiant le réglage des grades comme suit: Fichier -> Paramètres -> Création, exécution, déploiement -> gradle. Il y a une construction déroulante et exécutée en utilisant: qui comporte des options de gradle et d'une idée d'Intellij. Grade était par défaut. J'ai choisi Intellij Idea et mon système est de nouveau devenu vivant. Entrez la description de l'image ici


1 commentaires

Merci ... Cela a vraiment aidé.