2014-02-05 3 views
0

내가 점점 계속 런타임 오류가내가 그것을

Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:840) at java.util.Scanner.next(Scanner.java:1461) at java.util.Scanner.nextInt(Scanner.java:2091) at java.util.Scanner.nextInt(Scanner.java:2050) at lab4b2.main(lab4b2.java:12)

내 코드가

import java.util.*; 
import java.io.*; 
public class lab4b2 
{ 
    public static void main (String [] args) 
     throws IOException 
    { 
     Scanner fileIN = new Scanner(new File("lab4b2.txt")); 
     char unit; 
     double amount,conv; 
     unit = fileIN.next().charAt(0); 
     amount = fileIN.nextInt(); 
     switch (unit) 
     { 
      case 'p': conv = amount*4.9; 
       System.out.printf("%.2f pounds = %.2f newtons",amount,conv); 
       break; 
      case 'P': conv = amount*4.9; 
       System.out.printf("%f pounds = %f newtons",amount,conv); 
       break; 
      case 'f': conv = amount*0.30488; 
       System.out.printf("%f feet = %f meters",amount,conv); 
       break; 
      case 'F': conv = amount*0.30488; 
       System.out.printf("%f feet = %f meters",amount,conv); 
       break; 
      case 'm': conv = amount*1.61; 
       System.out.printf("%f miles = %f kilometers",amount,conv); 
       break; 
      case 'M': conv = amount*1.61; 
       System.out.printf("%f miles = %f kilometers",amount,conv); 
       break; 
      default: System.out.println("Please enter the possible units only."); 
       break; 
     } 
    } 
} 

문제가 무엇입니까

입니다 실행할 때 오류를 출력 잘 작동? 실행을 클릭해야이 문제가 발생합니다. 도움이된다면 JCreator를 사용하고 있습니다. 나는이 문제가 printf의 어딘가에 있다고 생각하지만 문제에 대한 합리적인 답을 찾지 못한다. 내 파일 입력된다 는 M 3.106 P 125 F 120 P 7.2 F 56 M 100

+1

, 오류가 filelab4b.java에서 일어나는 것을 나타냅니다? – Travis

답변

1

오류가이 라인에서 발생된다 :

amount = fileIN.nextInt(); 

파일의 첫 번째 숫자는 아니다 int이므로 InputMismatchException이됩니다. 더 나은 답변을 얻기 위해 성취하고자하는 것에 대한 자세한 정보를 제공하십시오.

+0

고마워요! 나는 그와 비슷한 것을 알아야했다 – haasbury

0

다른 사람의 숙제 나 학교 프로젝트처럼 들립니다. 즉, 귀하의 문제는 12 행에 있습니다. 당신은 int에 대한 스캔을하고 있지만 데이터 파일에 int가 아닌 3.106이 있습니다.

+0

고마워요! 숙제 나 학교 프로젝트 가정에 맞습니다. – haasbury

0

나는 여기에 오류가 있다고 생각합니다 :

amount = fileIN.nextInt();

읽은 첫 번째 숫자는 3.106이며 int가 아닙니다. 다음과 같이 변경하려고합니다.

float amount, conv; 
amount = fileIN.nextFloat(); 

오류 출력은 문제가되는 줄을 걷는 데 유용합니다. 이 :

java.util.Scanner.nextInt(Scanner.java:2050) at lab4b2.main(lab4b2.java:12) 

라인 lab4b2.txt의 새로운 기능 12

+0

바닥에 물건이 얼버무 리는 것을 이해하게 도와 주셔서 감사합니다! – haasbury