Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на заданную букву - C#
Формулировка задачи:
Добрый день.
Это мой первый вопрос на форуме.
Прошу помочь с задачкой: "Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на заданную букву."
Условие задачи таково, что надо использовать файл .dat а не .txt
Мое решение приведено ниже, в ответе выдает "?fdfg?fhahdh?fkkk", а хотелось бы вместо знаков ?, что были пробелы (на месте знаков ?, в консоли отображаются ? в квадратах).
Спасибо)
static void Main()
{
string line = "fdfg fhahdh fkkk iii? ppp";
Console.WriteLine("fdfgf hahdh fkkk iii? ppp");
Console.WriteLine("Введите букву");
char b = 'f';
Console.Write("b={0}",b);
string[] lineAr = line.Split(' ');
FileStream f = new FileStream("ch3.dat", FileMode.Create);
BinaryWriter fOut = new BinaryWriter(f);
for (int i = 0; i < lineAr.Length; ++i)
{
if(lineAr[i][0] == b)
fOut.Write(lineAr[i]);
}
fOut.Close();
f = new FileStream("ch3.dat", FileMode.Open);
BinaryReader fln = new BinaryReader(f);
long m = f.Length;
Console.WriteLine(m);
for(long i = 0; i<m; i+=1)
{
f.Seek(i, SeekOrigin.Begin);
Console.Write(fln.ReadChar());
}
Console.ReadLine();
}Решение задачи: «Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на заданную букву»
textual
Листинг программы
using System;
using System.IO;
class Mem
{
static void Main()
{
Console.WriteLine("Введите строку : ");
string line = Console.ReadLine();
Console.WriteLine("line = "+line);
Console.Write("Введите букву : ");
char b = char.Parse(Console.ReadLine());
Console.WriteLine("b = {0}", b);
string[] lineAr = line.Split(' ');
FileStream f = new FileStream("ch3.dat", FileMode.Create);
StreamWriter mem = new StreamWriter(f);
for (int i = 0; i < lineAr.Length; ++i)
{
if (lineAr[i][0] == b)
mem.Write(lineAr[i] +" ");
}
mem.Close();
f = new FileStream("ch3.dat", FileMode.Open);
long m = f.Length;
Console.WriteLine("длина : "+m);
for (long i = 0; i < m; i += 1)
Console.Write((char)f.ReadByte());
Console.WriteLine();
Console.ReadKey(true);
}
}