2011-08-14 83 views
0

我試圖讓這個小電影評級程序正常工作,一切正常,直到我開始提示評級人員進入評級。它讓我評價兩個行爲都很好,但只要我點擊輸入按鈕評級音樂將下移到一個空白行,而不是提示下一個輸入。我解決這個問題的唯一方法似乎是讓我輸入兩次。未處理的異常:System.FormatException:輸入字符串的格式不正確

感謝

Console.WriteLine("Rate the following out of 5"); 
Console.Write("Acting > "); 
acting_rating = int.Parse(Console.ReadLine()); 

Console.Write("Music > "); 
Console.ReadLine(); 
music_rating = int.Parse(Console.ReadLine()); 

Console.Write("Cinematography > "); 
Console.ReadLine(); 
cinematography_rating = int.Parse(Console.ReadLine()); 

Console.Write("Plot > "); 
Console.ReadLine(); 
plot_rating = int.Parse(Console.ReadLine()); 

Console.Write("Duration > "); 
Console.ReadLine(); 
duration_rating = int.Parse(Console.ReadLine()); 

回答

2

你打電話Console.ReadLine();一次太頻繁......只是刪除Console.ReadLine();Console.Writeint.Parse之間。

但如果用戶輸入錯誤的參選 - 就像一個字,而不是一個數字 - 你仍然會得到一個異常...要處理,妥善使用try catch block和/或TryParse

+0

你的第一個陳述是錯誤的:Console.ReadLine'的MSDN頁面明確指出,*「返回的字符串不包含終止字符。」* – stakx

+0

我的壞 - 更正... – Yahia

1

剔除代理,你總有兩個Console.ReadLine();即:

Console.Write("Music > "); // write Music > 
Console.ReadLine();   // read the user input (and throw it away) 
music_rating = int.Parse(Console.ReadLine()); // read the user input again and parse it 

刪除單個語句Console.ReadLine();並應該沒問題。

+0

解決!非常感謝你的幫助! – Henry

相關問題