簡體   English   中英

“System.FormatException:輸入字符串的格式不正確。”

[英]"System.FormatException: Input string was not in a correct format."

“System.FormatException:輸入字符串的格式不正確。”

這一直停止我的程序並告訴我我沒有將用戶輸入轉換為 integer(因為用戶輸入最初是字符串類型)。

這是我的 C# 項目的代碼:

using System;
namespace Project1 {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("PREPARING GAME: HEADS AND TAILS");
            Console.WriteLine("PRESS ENTER TO CONTINUE");
            Console.Read();
            Console.WriteLine("PICK A NUMBER:");
            Console.WriteLine("1: HEADS");
            Console.WriteLine("2: TAILS");
            Console.WriteLine("----------------");
            int playerNum = Convert.ToInt32(Console.ReadLine()); //Where the trouble happens
        }
    }
}

如果我認為我已經使用Convert.ToInt32()方法修復了它,我不確定為什么它會一直報告相同的錯誤。 我嘗試將它轉換為 int16 而不是 int32,因為整數很小,但它仍然會拋出相同的異常錯誤。 我認為我也不需要加倍,因為我真的只要求一個小整數。

Console.Read()從輸入 stream 中讀取一個字符,windows 回車符是兩個字符\r\n因此您將\n留在緩沖區中。

當您到達Console.ReadLine()時,它正在讀取作為參數傳遞給Convert.ToInt32("\n")的輸入緩沖區 ( \n ) 的 rest 並引發異常。

將第一個Read()調用更改為ReadLine()以從緩沖區讀取完整的回車符,然后當您到達下一個ReadLine()時緩沖區將為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM