Ошибка чтения int из файла через StreamReader.Read() - C#
Формулировка задачи:
Неправильно и как-то непонятно считуются данные с текстового файла.
Файл:
3
10
1 1 1 1 1 1 1 1 1 1
10
9 8 7 6 5 4 3 2 1 0
10
2 1 2 1 2 1 2 1 2 1
Код програмы:
Выдача на екран:
Тоесть, комманда ReadLine() работает нормально, а c Read() происходят странности.
Это у меня со студиет что-то не в порядке или я пропустил что-то важное?
FileStream f1 = new FileStream("TASK2.DAT", FileMode.Open);
FileStream f2 = new FileStream("TASK2.REZ", FileMode.Create);
StreamReader dat = new StreamReader(f1);
StreamWriter rez = new StreamWriter(f2);
int k = Convert.ToInt32(dat.ReadLine());
Console.WriteLine(k);
for (int i = 1; i <= k; i++)
{
int n = Convert.ToInt32(dat.ReadLine());
Console.WriteLine(n);
int[] a = new int [n];
for (int j = 1; j <= n; j++)
{
a[j - 1] = Convert.ToInt32(dat.Read());
Console.Write(a[j - 1] + " ");
}
dat.ReadLine();
Console.WriteLine();
};
dat.Close();
rez.Close();
f1.Close();
f2.Close();
Console.ReadKey();Решение задачи: «Ошибка чтения int из файла через StreamReader.Read()»
textual
Листинг программы
int k = Convert.ToInt32(dat.ReadLine());
Console.WriteLine(k);
for (int i = 1; i <= k; i++)
{
int n = Convert.ToInt32(dat.ReadLine());
Console.WriteLine(n);
int[] a = dat.ReadLine()
.Split()
.Select(s => int.Parse(s))
.Take(n)
.ToArray();
foreach (int num in a)
{
Console.Write("{0} ", num);
}
Console.WriteLine();
}