if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                System.IO.StreamReader sr = new
                   System.IO.StreamReader(openFileDialog1.FileName);
                MessageBox.Show(sr.ReadToEnd());
               string path = @"f:\expriment";
            DirectoryInfo di = Directory.CreateDirectory(path);
            char[] b=new char[4];
            sr.Read(b, 0, 2);
            string str = new string(b);
            int c = Convert.ToInt32(str);
         
              }   }
请问上面这段代码中类型转换部分  哪里出错了,急,谢谢!在线等!

解决方案 »

  1.   

    你看看str里的值是什么啊? 是数字吗?
    int c = Convert.ToInt32(str.Trim()); 
    试试
      

  2.   

    如果是编译错误的话,应该是没有。但运行时错误,这个就很难说了。你从sr中读取数据到b这个缓冲区中时只读取了两个字节,建立你先检查一下str的值为多少再看看。
      

  3.   

     char[] b=new char[4]; 
              sr.Read(b, 0, 2); b[2],b[3]值为空
      

  4.   

    string str = b。tostring(); 
      

  5.   

    不好意思,刚出去了
    还在吗
    我试了一下,不知怎么回事  str为空
    我打开的是txt文件,里面全是连续的数字。
    谢谢!
      

  6.   

    MessageBox.Show(sr.ReadToEnd()); 
    这句话sr已经到文件结尾了.再read就没数了.