Работа с двоичными файлами - C#
Формулировка задачи:
Создать файл и записать в него вещественные числа из диапазона от a до b с шагом h.
Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все компоненты файла с четными номерами, меньшие заданного числа.
Выводит слишком много лишнего мне кажется, должен выводить только до указанного значения, в чём ошибка?
Листинг программы
- using System;
- using System.Text;
- using System.IO;
- namespace MyProgram
- {
- class Program
- {
- static void Main()
- {
- Console.Write("a= ");
- double a = double.Parse(Console.ReadLine());
- Console.Write("b= ");
- double b = double.Parse(Console.ReadLine());
- Console.Write("h= ");
- double h = double.Parse(Console.ReadLine());
- Console.Write("заданное число= ");
- double q = double.Parse(Console.ReadLine());
- //Записываем в файл text.txt вещественные числа из заданного диапазона
- FileStream f = new FileStream("text.txt", FileMode.Open);
- BinaryWriter fOut = new BinaryWriter(f);
- for (double i = a; i <= b; i += h)
- {
- fOut.Write(i); ;
- }
- fOut.Close();
- //Объекты f и fIn связаны с одним и тем же файлом
- f = new FileStream("text.txt", FileMode.Open);
- BinaryReader fIn = new BinaryReader(f);
- long m = f.Length; //определяем количество байт в потоке
- //Читаем данные из файла text.txt начиная с элемента с номером 1, т.е с 8 байта,
- //перемещая внутренний указатель на 16 байт, т.е. на два вещественных числа
- for (long i = 8; i < m; )
- {
- if (fIn.ReadDouble() < q)
- {
- f.Seek(2 * i, SeekOrigin.Begin);
- a = fIn.ReadDouble();
- Console.Write("{0:f2} ", a);
- i += 8;
- }
- }
- fIn.Close();
- f.Close();
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Работа с двоичными файлами»
textual
Листинг программы
- FileStream f = new FileStream(@"e:\text.txt", FileMode.Create);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д