这个问题在这里已有答案:
using System;
using System.IO;
namespace _2._1
{
class Program
{
public struct nariai
{
public string vardas;
public string pavarde;
public double pinigai;
};
static void Main(string[] args)
{
StreamReader failas = new StreamReader("nariai.txt");
string a = failas.ReadLine();
int nariuKiekis = int.Parse(a);
nariai[] narys = new nariai[nariuKiekis];
string[] info = new string[nariuKiekis];
for (int i = 0; i < nariuKiekis; i++)
{
info[i] = failas.ReadLine();
string[] informacija = info[i].Split(' ');
narys[i].vardas = informacija[i];
narys[i].pavarde = informacija[i + 1];
narys[i].pinigai = double.Parse(informacija[i + 2]);
Console.WriteLine("{0} {1} {2}", narys[0].vardas, narys[0].pavarde, narys[0].pinigai);
}
}
}
}
我的文件看起来像那样。
我在控制台中收到此错误。
为什么它没有显示“Almeda Norkute 25.70”?
代替
narys[i].vardas = informacija[i];
narys[i].pavarde = informacija[i + 1];
narys[i].pinigai = double.Parse(informacija[i + 2]);
写
narys[i].vardas = informacija[0];
narys[i].pavarde = informacija[1];
narys[i].pinigai = double.Parse(informacija[2]);
你的informacija
包含一行,一行总共有3个项目。如果您需要我访问这些,您会收到错误,因为您正在尝试访问不存在的位置。
并使用
Console.WriteLine("{0} {1} {2}", narys[i].vardas, narys[i].pavarde, narys[i].pinigai);
否则你总是在控制台写第一条记录;)
代替信息[i],信息[i + 1]和信息[i + 2],分别使用信息[0],信息[1]和信息[2]。
并且还在console.writeline语句中使用索引i。
for (int i = 0; i < nariuKiekis; i++)
{
info[i] = failas.ReadLine();
string[] informacija = info[i].Split(' ');
narys[i].vardas = informacija[0];
narys[i].pavarde = informacija[1];
narys[i].pinigai = double.Parse(informacija[2]);
Console.WriteLine("{0} {1} {2}", narys[i].vardas, narys[i].pavarde, narys[i].pinigai);
}