我正在尝试让这个小型电影评级程序正常运行,一切正常,直到我开始提示评论员将进入的评级。它让我评价两种表现都很好但是只要我按下输入按钮来评价音乐就会向下移动到空白行,而不是提示输入下一个输入。我能解决这个问题的唯一方法就是两次输入值。
感谢
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());
答案 0 :(得分:2)
您经常拨打Console.ReadLine();
一次...只需删除Console.ReadLine();
和Console.Write
之间的int.Parse
。
虽然如果用户输入错误 - 例如一个单词而不是一个数字 - 你仍然会得到例外......为了正确使用try catch block和/或TryParse
。
答案 1 :(得分: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();
,应该没问题。