VS C# Баг в консоли
Написал программу на C#, которая создаёт два файла с N случайными вещественными числами. Вывожу их на консоль через запуск без отладки (ctrl + F5). Выводит какой-то бред: где-то исчезает ряд чисел, где-то вывод повторяется. Запускаю с отладкой, такого бага нет.
В интернете даже подобной проблемы не нашёл. Баг возникал и раньше, когда был длинный вывод с разными матрицами, так что от кода не зависит.
Помогите, пожалуйста, разобраться.
Прилагаю скрины вывода с отладкой/без отладки.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HomeWork4
{
internal class htaskfilesbin
{
// Сформировать бинарный файл из N случайных вещественных чисел в диапазоне от a до b (a ≤ b).
// Назначьте значения по умолчанию для параметров подпрограммы: N = 20, a = –50, b = 50.
static void WriteDoubleFile(string path, int N = 20, int a = -50, int b = 50)
{
Debug.Assert(path != null);
Debug.Assert(N >= 0);
Debug.Assert(a <= b);
using (var fs = File.Create(path))
using (var bw = new BinaryWriter(fs))
{
Random rand = new Random();
for (int i = 0; i < N; i++)
{
bw.Write(rand.Next(a * 100, b * 100) / 100.0);
}
}
}
static void OutputDoubleFile(string file)
{
try
{
using (var fs = File.Open(file, FileMode.Open))
using (var br = new BinaryReader(fs))
{
var sz = br.BaseStream.Length / sizeof(double);
try
{
for (var i = 0; i < sz; i++)
{
Console.WriteLine(br.ReadDouble());
}
}
catch (IOException e)
{
Console.WriteLine($"Ошибка чтения файла: {e.Message}");
}
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"Ошибка чтения файла: {e.Message}");
}
}
static void Main(string[] args)
{
Console.WriteLine("Задание 3: ");
WriteDoubleFile(@"input-files\task03.1.dat");
WriteDoubleFile(@"input-files\task03.2.dat");
Console.WriteLine("Первый файл: ");
OutputDoubleFile(@"input-files\task03.1.dat");
Console.WriteLine("Второй файл: ");
OutputDoubleFile(@"input-files\task03.2.dat");
Console.ReadLine();
}
}
}
Источник: Stack Overflow на русском