Здравствуйте! Такая проблема. Хочу вывести таблицу результатов примитивного вида: Ниже мой недописанный код. Получается, что каждый раз файл перезаписывается, не пойму почему. Только начал изучать файлы, не все методы знаю. Было бы хорошо, если бы вы показали, как такую таблицу получить.
using System;
using System.IO;
namespace GuessNumber
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Как вас зовут? ");
StringReader sr = new StringReader(Console.ReadLine());
StreamWriter sw = new StreamWriter("out.txt");
sw.WriteLine(sr.ReadToEnd());
int min = int.Parse(Console.ReadLine());
int max = int.Parse(Console.ReadLine());
int maxCount = (int)Math.Log(max - min + 1, 2)+1;
int count = 0;
Random rnd = new Random();
int guessNumber = rnd.Next(min, max);
Console.WriteLine("Компьютер загадал число от {0} до {1}. Попробуйте угадать его за {2} попыток", min, max, maxCount);
int n;
do
{
count++;
Console.Write("{0} попытка. Введите число:", count);
n = int.Parse(Console.ReadLine());
if (n > guessNumber) Console.WriteLine("Перелет!");
if (n < guessNumber) Console.WriteLine("Недолет!");
}
while (count < maxCount && n!=guessNumber);
if (n == guessNumber) { Console.WriteLine("Поздравляю! Вы угадали число за {0} попыток", count); }
else { Console.WriteLine("Неудача. Попробуйте еще раз. Это было число: {0}", guessNumber); }
sw.Write("{0", count);
sr.Close();
sw.Close();
Console.ReadKey();
}
}
}
В файл попадает только имя и на следующей строчке количество попыток.
По-умолчанию StreamWriter переписывает данные в файле. Для того, что бы дописывать в конец файла, нужно выставить флаг append в конструкторе в true. Как уже сказали выше:
StreamWriter sw = new StreamWriter("out.txt", append: true);
Для того, что бы у вас получилась форматированная таблица, воспользуйтесь составным форматированием. При запуске приложения проверяйте файл на существование. Если файла нет, то создайте его и допишите в него заголовок, а при сохранении результата дописывайте строку.
В этой строчке код выкинет исключение System.FormatException так как у вас потерялась }:
sw.Write("{0", count);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей