2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
1

Программа, которая считывает текст из файла и выводит его на экран

01.11.2013, 20:20. Показов 2845. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, перевести код из С в C#

Задание:
Программа, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем заданная с клавиатуры буква.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    char filename[20];
    char char01, char02;
    
    printf("Enter the name of the file: ");
    gets(filename);
    
    printf("Enter a character: ");
    scanf("%c", &char01);
    
    FILE *fp;    
    if ((fp=fopen(filename,"r"))==NULL) {
        printf("can't open file\n");
        exit(1);
    }
 
    int times = 0;  
    while(!feof(fp)) {
        char02 = getc(fp);
        if (char02==char01) times++;
        if (char02=='\n') {
            printf("  '%c' = %i", char01, times);
            times = 0;
        }
        putchar(char02);
    }
        
    
    
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2013, 20:20
Ответы с готовыми решениями:

Программа которая считывает английский текст и выводит его на экран
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив...

Написать программу, которая считывает текст из файла и выводит его на экран
Помогите пожалуйста с кодом, для данного задания. Написать программу, которая считывает текст из...

Написать программу которая считывает текст из файла и выводит его на экран
Здравствуйте!!!:) помогите написать программу которая считывает текст из файла и выводит его на...

Написать программу, которая считывает английский текст из файла и выводит его на экран
Добрый день, у меня такая проблема, есть такое задание :Написать программу, которая считывает...

8
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
02.11.2013, 00:43 2
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.символ для сравнения: ");
        char Comparer = Console.ReadKey().KeyChar;
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int i, count = i = 0;
            while (i < len)
            {
                char c = text[i++];
                if (c == Comparer) count++;
                else if (c == '\n'||i == len - 1)
                {
                    Console.WriteLine(
                    "Символ '{0}' встретился {1} раз(а)",
                    Comparer, count);
                    count = 0;
                }
            }
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
1
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
02.11.2013, 01:34  [ТС] 3
Цитата Сообщение от rattrapper Посмотреть сообщение
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.символ для сравнения: ");
        char Comparer = Console.ReadKey().KeyChar;
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int i, count = i = 0;
            while (i < len)
            {
                char c = text[i++];
                if (c == Comparer) count++;
                else if (c == '\n'||i == len - 1)
                {
                    Console.WriteLine(
                    "Символ '{0}' встретился {1} раз(а)",
                    Comparer, count);
                    count = 0;
                }
            }
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
Спасибо огромное!

Добавлено через 18 минут
Цитата Сообщение от rattrapper Посмотреть сообщение
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.символ для сравнения: ");
        char Comparer = Console.ReadKey().KeyChar;
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int i, count = i = 0;
            while (i < len)
            {
                char c = text[i++];
                if (c == Comparer) count++;
                else if (c == '\n'||i == len - 1)
                {
                    Console.WriteLine(
                    "Символ '{0}' встретился {1} раз(а)",
                    Comparer, count);
                    count = 0;
                }
            }
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
а как исправить программу, чтобы можно было проверять файл на вхождение слова, введенного с клавиатуры?
0
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
02.11.2013, 02:02 4
Цитата Сообщение от SkyL1ne_tm Посмотреть сообщение
а как исправить программу, чтобы можно было проверять файл на вхождение слова, введенного с клавиатуры?
Вот,
Вроде работает, но могут быть недочеты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.строку для сравнения: ");
        string Comparer = Console.ReadLine();
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int i, count = i = 0;
            while (i < len)
            {
                char c = text[i++];
                if (c == Comparer[0])
                {
                    int j = 1;
                    for (; j <= Comparer.Length; j++)
                    {
                        if (j == Comparer.Length) count++;
                        else if (text[i] != Comparer[j]) break;
                        else i++;
                    }
                }
                else if (c == '\n' || i == len - 1)
                {
                    Console.WriteLine(
                    "Строка '{0}' встретилась {1} раз(а)",
                    Comparer, count);
                    count = 0;
                }
            }
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
02.11.2013, 03:16  [ТС] 5
Цитата Сообщение от rattrapper Посмотреть сообщение
Вот,
Вроде работает, но могут быть недочеты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.строку для сравнения: ");
        string Comparer = Console.ReadLine();
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int i, count = i = 0;
            while (i < len)
            {
                char c = text[i++];
                if (c == Comparer[0])
                {
                    int j = 1;
                    for (; j <= Comparer.Length; j++)
                    {
                        if (j == Comparer.Length) count++;
                        else if (text[i] != Comparer[j]) break;
                        else i++;
                    }
                }
                else if (c == '\n' || i == len - 1)
                {
                    Console.WriteLine(
                    "Строка '{0}' встретилась {1} раз(а)",
                    Comparer, count);
                    count = 0;
                }
            }
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
выдает ошибку "индекс вне границ массива".
может я что-то не так делаю? ввожу имя файла, в котором есть небольшой текст, затем то слово, которое я хочу посмотреть, сколько раз оно входит в текст
0
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
02.11.2013, 09:44 6
Цитата Сообщение от SkyL1ne_tm Посмотреть сообщение
может я что-то не так делаю?
нет, это я написал дерьмовый код, вот, держи
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.строку для сравнения: ");
        string Comparer = Console.ReadLine();
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int index = -1, count = 0;
            while (text.IndexOf(Comparer, index + 1) != -1)
            {
                index = text.IndexOf(Comparer, index + 1);
                count++;
            }
            Console.WriteLine("Строка \"{0}\" встретилась в файле {1} раз(а)",
                Comparer, count);
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
1
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
02.11.2013, 11:14 7
тоже как вариант
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    class Program
    {
        static void Main(string[] args)
        {
            string file = File.ReadAllText("1.txt", Encoding.Default);
 
            string[] strs = file.Split(new string[] { ". ", "? ", "! ", "; " }, StringSplitOptions.RemoveEmptyEntries);
 
            string find = Console.ReadLine();
 
            foreach (string item in strs)
            {
                Console.WriteLine(item);
              
                int amount = new Regex(find).Matches(item).Count;
                Console.WriteLine("Кол-во: {0}", amount);
            }
 
            Console.ReadKey();
        }
    }
1
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
02.11.2013, 13:51  [ТС] 8
Цитата Сообщение от rattrapper Посмотреть сообщение
нет, это я написал дерьмовый код, вот, держи
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.строку для сравнения: ");
        string Comparer = Console.ReadLine();
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int index = -1, count = 0;
            while (text.IndexOf(Comparer, index + 1) != -1)
            {
                index = text.IndexOf(Comparer, index + 1);
                count++;
            }
            Console.WriteLine("Строка \"{0}\" встретилась в файле {1} раз(а)",
                Comparer, count);
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
спасибо, все работает!

Добавлено через 29 минут
Цитата Сообщение от rattrapper Посмотреть сообщение
нет, это я написал дерьмовый код, вот, держи
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.IO;
using System.Text;
 
class Test
{
    public static void Main(string[] args)
    {
        Console.Write("Вв.имя файла: ");
        string FileName = Console.ReadLine();
        Console.Write("Вв.строку для сравнения: ");
        string Comparer = Console.ReadLine();
        Console.WriteLine();
        try
        {
            FileStream fs = new FileStream(FileName, 
                FileMode.Open, FileAccess.Read);
            int len = (int)fs.Length;
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, len);
            string text = Encoding.UTF8.GetString(buffer);
            int index = -1, count = 0;
            while (text.IndexOf(Comparer, index + 1) != -1)
            {
                index = text.IndexOf(Comparer, index + 1);
                count++;
            }
            Console.WriteLine("Строка \"{0}\" встретилась в файле {1} раз(а)",
                Comparer, count);
            Console.WriteLine("Чтение завершено");
        }
        catch (IOException e)
        {
            Console.WriteLine("Ошибка при чтении файла: ");
            Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Ошибка: ");
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey(false);
        }
    }
}
если, к примеру, я хочу выводить найденное количество раз слово, встречающееся в каждой строке, после этой же строки, то как это реализовать? как-то так?

C#
1
2
3
4
5
                foreach (string item in text)
                    {
                        Console.WriteLine("\nслово \"{0}\" встретилась в файле {1} раз(а)",
                    Comparer, count);
                    }
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
05.11.2013, 23:37  [ТС] 9
как это реализовать? подскажите плз
0
05.11.2013, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2013, 23:37
Помогаю со студенческими работами здесь

Программа, которая считывает английский текст из файла и выводит на экран слова текста, оканчивающиеся на гласные
using System; using System.IO; using System.Text.RegularExpressions; using System.Linq; ...

Программа, которая считывает русский текст из файла и выводит на экран предложения, начинающиеся с гласных букв
Код программы практически готов, единственное, что я не могу понять - как сделать так, чтобы метод...

Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив прописной каждую первую
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив...

Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые...

Программа, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке
Требуется написать программу, которая считывает текст из файла и выводит на экран все его...

Файлы. Программа, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке
Помогите пожалуйста! Такая проблема, есть программа: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru