2016-04-05 13 views
1

Bu çalışmayı denemeye çalışırken çok farklı şeyler denedim. Sadece bir topal soru için özür dilerim Ben bir toplam acemi değilim. InFile sayfamdan bilgi istediğimde, verilerin bulunduğu sırada olması gerekir mi?"main" java.util.InputMismatchException hata iletisindeki kural dışı durum iletisi

10.20 \\\length 
5.35 \\\width 
15.6 \\\radius 
Randy Gill \\\first last name 
31 \\\age 
18500 \\\bank account balance 
3.5 \\\ interest rate 
A \\char 'a' 

Ben, daireyi bir dikdörtgenin boyutlarını yazdırmak gerekiyor:

Bu inData.txt olduğunu. Banka hesap bilgisi ile isim. Yardım için teşekkürler!

import java.util.*; 
import java.io.*; 


public class ProgrammingExercise3_1 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 

     double rectWidth; 
     double rectLength; 
     double radius; 
     int age; 
     double begBal; 
     char A; 
     String name; 
     double rate; 

     Scanner inFile = new Scanner(new FileReader("C:\\Users\\sierr_000\\Desktop\\Sam School\\IT-145\\Exercises\\Ch 3\\inData.txt")); 

     PrintWriter outFile = new PrintWriter("C:\\Users\\sierr_000\\Desktop\\Sam School\\IT-145\\Exercises\\Ch 3\\outData.out"); 

     rectWidth = inFile.nextDouble(); 
     rectLength = inFile.nextDouble(); 

     outFile.println("Rectangle: "); 
     outFile.println("Length = " + rectLength + ", width = " + rectWidth + ", area = " 
        + (rectWidth*rectLength) + ", perimeter = " + (2 * (rectWidth + rectLength))); 

     radius = inFile.nextDouble(); 

     outFile.println("Circle: "); 
     outFile.println("Radius = " + radius + ", area = " + (radius*3.1416) + "Circumfrence = " + (2*3.1416*radius)); 

     name = inFile.next(); 
     age = inFile.nextInt(); 

     outFile.println("Name: " + name + ", age: " + age); 

     begBal = inFile.nextDouble(); 
     rate = inFile.nextDouble(); 

     outFile.printf("Beginning Balance: %.2f %n" , begBal + "interest rate: %.2f" , rate); 
     outFile.println("The character that comes after A in the ASCII is B");  




     inFile.close(); 
     outFile.close(); 

    } 
} 
+0

'" InFile sayfasından bilgi istediğimde, verilerin girildiği sırada olması gerekir mi? "- evet öyle. Tarayıcı nesnesi, dosyanız boyunca doğrusal olarak, belirteçle simge tarar. –

cevap

0

İyi bir başlangıç ​​yapmaktasınız! Kodunuzda sorunlara neden olan 2 sorun buldum.

name değişken bu şekilde atanması gereken:

name = inFile.next()+" "+inFile.next(); 

name = inFile.next() sadece "Randy" alır ve age değişkeni berbat.

Sonraki Bu hat neden oluyordu sorunları:

outFile.printf("Beginning Balance: %.2f %n" , begBal + "interest rate: %.2f" , rate); 

Ben outFile.print ve outFile.printf tabloların bir dizi bölmek.

outFile.print("Beginning Balance: "); 
    outFile.printf("%.2f %n", begBal); 
    outFile.print("interest rate: "); 
    outFile.printf("%.2f", rate); 

Bu 2 sorundan sonra, her şey işe yarıyor gibi görünüyor. Umarım bu yardımcı olur!

İlgili konular