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 em> p> à l'aide de bufferreader em> p> 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é. P> 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é. P> Enfin ce que je veux réaliser, c'est le format suivant P> Calculator strong> max 12 23 25 45 EM> P> avant d'entrer en entrée la console .. p> Dernière mise à jour forte> p> 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. em> p> 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? P> p>
p> < P> Après avoir entré l'entrée p>
4 Réponses :
appel system.out.flush () code> 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. P>
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 (); code> c'est ce que j'ai fait
au lieu de sc.nextline () code> Vous devez utiliser sc.next () code>. p>
Mais le problème n'est pas que, Calculator i> 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.
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. P>
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 em> ( 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. P>
Pour créer manuellement une configuration d'exécution qui invoque Wrapper des grades, le moyen le plus simple consiste à passer par une configuration Limitation EM>: 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. P> JAR code> dans Intellij Idea. Pour rendre cela possible, vous devez également corriger le gradle / wrapper / gradle-wrapper.jar code> 'S manifeste code> et ajouter un classement principal code> entrée . De cette façon, vous pouvez lancer une wrapper des grades de Intellij Idea et profiter system.out.print (...) code>. P>
Oui, je l'ai également mis dans la communauté des grades. Merci de votre aide.
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.
p>
Merci ... Cela a vraiment aidé.
Appelez
system.out.flush () code> Avant de commencer à traiter l'entrée après avoir effectué une sortie.Changer
impression () code> àprintln () code>.Oui, PrintLN fonctionne. Mais je veux obtenir l'entrée dans la même ligne que "calculatrice" imprimée. Println ne fait pas ça.