Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на заданную букву - 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);
    }
}

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы