Работа с двоичными файлами - 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5