J'ai du mal à lire l'entrée jusqu'à EOF
dans Java
. Ici, il y a une seule entrée et la sortie considère l'entrée à chaque ligne.
Exemple:
entrée:
1
2
3
4
5
sortie:
0
1
0
1
0
Mais, j'ai codé en utilisant Java, la sortie unique s'imprimera lorsque j'entrerai deux nombres. Je veux une seule entrée et imprimer une seule sortie chaque ligne (terminer EOF
) en utilisant BufferedReader
en Java.
Voici mon code:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
StringBuffer pr = new StringBuffer("");
String str = "";
while((str=input.readLine())!=null && str.length()!=0) {
BigInteger n = new BigInteger(input.readLine());
}
Vous consommez une ligne sur, qui est supprimée
while((str=input.readLine())!=null && str.length()!=0)
et lire un bigint à
BigInteger n = new BigInteger(input.readLine());
alors essayez d'obtenir le bigint de la chaîne qui se lit comme
BigInteger n = new BigInteger(str);
Constructor used: BigInteger(String val)
Modifiez également while((str=input.readLine())!=null && str.length()!=0)
en
while((str=input.readLine())!=null)
voir connexes publier la chaîne dans bigint
readLine()
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
voir javadocs
Avec les fichiers texte, peut-être le EOF est -1 lors de l'utilisation de BufferReader.read (), char par char. J'ai fait un test avec BufferReader.readLine ()! = Null et cela a fonctionné correctement.