gpt4 book ai didi

java - 从文件重定向输入时出错

转载 作者:行者123 更新时间:2023-11-30 06:32:13 27 4
gpt4 key购买 nike

这是我的代码:

import java.util.Scanner;

class Graph{
boolean [][]array;
int N;
Graph (){
array = new boolean [1001][1001];
N=0;
}

void read_graph() {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
sc.nextLine();

String str;
String []substr;

for (int K=1; K<=N; K++){
str = sc.nextLine();
substr = str.split(" ");
for (int I=0; I<substr.length; I++)
System.out.println(substr[0]+" "+substr[I]);
}
}

void query(){
Scanner sc = new Scanner(System.in);
int P, Q;
int counter = 0;
boolean flag = true;
while (flag){
counter++;
P = sc.nextInt();
Q = sc.nextInt();
sc.nextLine();
if ( P == Q && P == 0 )
flag =false;
else {
if (Q == 1)
System.out.println("DFS done");
else
System.out.println("Bfs done");
}
}
}
}
class demo{
public static void main( String [] args ){
Graph G= new Graph();
Scanner sc = new Scanner(System.in);
int numGraphs = sc.nextInt();
while (numGraphs>0){
G.read_graph();
G.query();
numGraphs--;
}
}
}

这是输入数据:

1
6
1 2 3 4
2 2 3 6
3 2 1 2
4 1 1
5 0
6 1 2
5 1
1 0
1 0
0 0

当我用键盘输入这个输入数据时它工作正常但是当我将这个输入保存到文件并将其重定向为输入时(在 linux 中使用'<'),它抛出错误消息。

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:855)
at java.util.Scanner.next(Scanner.java:1478)
at java.util.Scanner.nextInt(Scanner.java:2108)
at java.util.Scanner.nextInt(Scanner.java:2067)
at Graph.read_graph(b.java:13)
at demo.main(b.java:56)

帮我指出错误。

最佳答案

不要在每个方法中都创建一个 Scanner 对象。传递您创建的第一个 Scanner 对象。

以下是应解决问题的更改列表:

--- demo-old.java   2012-01-25 23:12:54.000000000 +0530
+++ demo.java 2012-01-25 23:13:45.000000000 +0530
@@ -10,4 +10,3 @@

-void read_graph() {
- Scanner sc = new Scanner(System.in);
+void read_graph(Scanner sc) {
N = sc.nextInt();
@@ -26,4 +25,3 @@

-void query(){
-Scanner sc = new Scanner(System.in);
+void query(Scanner sc){
int P, Q;
@@ -53,4 +51,4 @@
while (numGraphs>0){
- G.read_graph();
- G.query();
+ G.read_graph(sc);
+ G.query(sc);
numGraphs--;

关于java - 从文件重定向输入时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com