@danilchello

Как читать только новые цифры, без старых чётных/нечётных чисел в текстовый документ?

Суть кода чтобы водить число, потом определить число чётное или не чётное, после определения написать число в текстовой документ, и в конце уже показать все числа из документа. В первый раз теста все нормально, но когда делаешь второй, то он показывает числа которые были в первом тесте, которые не должен, и показывает числа второго теста, что должен.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace estudo_4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int num;
            char opcao = 'a';
            do
            {
                Console.WriteLine("Opção 's' = introduzir os números | 'n' = parar");
                opcao = char.Parse(Console.ReadLine());
                if (opcao == 's')
                {
                Console.WriteLine("Introduza ó número:\n");
                num = int.Parse(Console.ReadLine());

                if (num % 2 == 0)
                {
                    StreamWriter x;
                    string par = "C:\\Users\\данил\\Desktop\\par.txt";
                    x = File.AppendText(par);
                    x.Write(num);
                    x.Close();
                    }

                    if (num % 2 == 1)
                    {
                        StreamWriter z;
                        string impar = "C:\\Users\\данил\\Desktop\\impar.txt";
                        z = File.AppendText(impar);
                        z.Write(num);
                        z.Close();
                    }
                }
            }
                while (opcao != 'n');

            StreamReader c;
            string lerpar = "C:\\Users\\данил\\Desktop\\par.txt";
            c = File.OpenText(lerpar);
            while (c.EndOfStream != true)
            {
                string linha = c.ReadLine();
                Console.WriteLine("Os número pares:\n" + linha);
            }
            c.Close();

            StreamReader v;
            string lerimpares = "C:\\Users\\данил\\Desktop\\impar.txt";
            v = File.OpenText(lerimpares);
            while (v.EndOfStream != true)
            {
                string linho = v.ReadLine();
                Console.WriteLine("Os números impares:\n" + linho);
            }
            v.Close();
            Console.ReadKey();

        }
    }
}


для более удобного общения, вот мой телеграмм @danylo71
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
NikFaraday
@NikFaraday
Student full-stack Developer
Я бы советовал вам сперва улучшить ваш код до понятного уровня, а то тут сложно вообще что либо понять. К примеру: блок if вложен внутрь и никогда не будет работать, так как он отыгрывает роль блока else. Названия переменных просто ад какой-то, что за что отвечает - непонятно. Потоки без using. Для ввода с клавиатуры какого-то выбора используется string и блок switch. Разберитесь с этим

Решение проблемы может быть в том, что у вас два блока if вложены, прочитайте про условные операторы и переделайте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы