输入字符串的格式不正确

本文关键字:不正确 格式 字符串 输入 | 更新日期: 2023-09-27 18:29:54

我正在尝试将文本文件中的值读取到数组中。这是一个简单的问题,但即使我觉得我键入的代码与书中的完全一样,如果不给出"输入字符串格式不正确"的错误,代码也不会运行visualstudio在输出托盘中显示:

'CS_TotalSales.vshost.exe' (CLR v4.0.30319: CS_TotalSales.vshost.exe): Loaded 'c:'users'dakota'documents'visual studio 2013'Projects'CS_TotalSales'CS_TotalSales'bin'Debug'CS_TotalSales.exe'. Symbols loaded.
'CS_TotalSales.vshost.exe' (CLR v4.0.30319: CS_TotalSales.vshost.exe): Loaded 'C:'Windows'Microsoft.Net'assembly'GAC_MSIL'Accessibility'v4.0_4.0.0.0__b03f5f7f11d50a3a'Accessibility.dll'. Cannot find or open the PDB file.
 A first chance exception of type 'System.FormatException' occurred in mscorlib.dll

我不确定以上任何一个是什么意思,尽管我想知道我的书中是否有错别字。下面是代码,是什么原因导致了这个错误?

 //declare array and size variables
            const int SIZE = 7;
            decimal[] salesArray = new decimal[SIZE];
            //declare a counter
            int index = 0;
            try
            {
                //decalre and initialize a streamreader object for the sales file
                StreamReader inputFile = File.OpenText("Sales.txt");
                while (index < salesArray.Length && !inputFile.EndOfStream)
                {
                    salesArray[index] = int.Parse(inputFile.ReadLine());
                    index++;
                }
                //close the file
                inputFile.Close();
                //add sales to listbox
                foreach (int sale in salesArray)
                {
                    salesListbox.Items.Add(sale);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

输入字符串的格式不正确

这一行导致异常:

salesArray[index] = int.Parse(inputFile.ReadLine());

输入文件Sales.txt中至少有一行无法解析为整数。可能是一个空行,或者一些额外的字符使其成为无效整数。也许有一个带点的数字(不是整数)或其他什么。

请改用TryParse()方法,并检查在尝试解析该行时是否存在错误。尝试更改此位:

int number;
while (index < salesArray.Length && !inputFile.EndOfStream)
{
     if (Int32.TryParse(inputFile.ReadLine(), out number))
        salesArray[index++] = number;
}