С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
 Аватар для Meluk13
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 6

Консольное приложение C++. Считывание текста из txt файла

20.03.2018, 20:41. Показов 4503. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Помогите пожалуйста дописать мой код, у меня есть заготовка, но далее продвинуться, я не понимаю как, надеюсь на Вашу помощь. Нужно срочно, буду очень благодарен
Вот задание
Написать программу, которая:
Выводит содержание файла в консоль, причем каждое предложение с новой строки.
Считывает текст из файла и выводит в окне MessageBox предложения, не содержащие
двузначных целых чисел.

Вот код:

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
62
63
64
65
#include<windows.h>
#include<fstream>
#include<math.h>
#include<cctype>
#include<cstdlib>
#include<iomanip>
#include<ctime>
#include<algorithm>
#include<iterator>
#include<iostream>
#include<string>
#include<stdio.h>
#include "string.h"
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleTitle("Milevskiy");
    cout << "Input counts of chars: ";
    int p;
    cin >> p;
 
    char *Vs = new char[1000];
 
    char arr[800][6];
 
    ifstream fin("Lab1.txt");
    if (!fin.is_open()) cout << "The file can not be opened!" << endl;
    else {
        cout << "Read from file" << endl;
        int point = 0;
        int k = 0;
        int i = 0, j = 0;
        while (!fin.eof())
        {
            arr[i][j] = fin.get();
            j++;
            if (arr[i][j] == '.') {
                i++;
                j = 0;
            }
        }
        for (int i = 0; i<100; i++)
 
        {
            cout << arr[0][i];
        }
 
        fin.close();
        cout<<"Ok"<<endl;
        MessageBox(0,Vs,"Текст из файла", MB_OK | MB_ICONQUESTION);
 
 
        delete[] Vs;
        return 0;
    }
 
 
 
 
 
    return 0;
}
Тут есть ненужная функция считывания строк, мне тоже нужно убрать, задание не совсем по коду
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2018, 20:41
Ответы с готовыми решениями:

Считывание текста с файла .txt
Как считать со строки сначала текст, а потом числа? Например: Triangle x1 y1 x2 y2 x3 y3 где x1,y1,x2,y2,x3,y3 числа

Считывание текста из txt-файла в Label
просмотрел разные темы на форуме, но к сожалению ничего не нашёл ИМЕННО по моему вопросу, а необходимо сделать следующее: есть 5...

Считывание русского текста из файла txt
Привет проштудировал большое кол-во тем по данному вопросу, сменил шрифт Courier New кириллицу , не помогает, пробовал разные другие...

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.03.2018, 21:20
Внятно сформулируй вопрос.
0
 Аватар для Meluk13
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 6
20.03.2018, 22:18  [ТС]
nmcf,
Написать программу, которая:
Выводит содержание файла в консоль, причем каждое предложение с новой строки.
Считывает текст из файла и выводит в окне MessageBox предложения, не содержащие
двузначных целых чисел.
Вот мой вопрос, а код я прикрепил как заготовку, может с его можно как то переделать, если он совсем не бесполезный. :c
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.03.2018, 22:36
Вывод файла работает? Если да, то ищи в массиве нужные предложения и выводи.
0
 Аватар для Meluk13
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 6
20.03.2018, 22:57  [ТС]
nmcf, да, вывод работает, но я не знаю как сделать именно выборку, что в меседж, боксе, выводиться предложения не содержащие в себе именно двухзначные целые числа. Вот основная моя проблема...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
21.03.2018, 06:44
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
char w[100];
 
Vs[0] = '\0';
 
for (int j = 0; j < i; ++j)
{
    strcpy(w, arr[j]);
    char *p = strtok(w, " ,;:");
    while (p != NULL)
    {
        if (strlen(p) == 2 && isdigit(p[0]) && isdigit(p[1]))
        {
            strcat(strcat(Vs, arr[j]), " ");
            break;
        }
        p = strtok(NULL, " ,;:");
    }
}
0
 Аватар для igorrr37
2872 / 2019 / 991
Регистрация: 21.12.2010
Сообщений: 3,750
Записей в блоге: 9
21.03.2018, 10:05
Лучший ответ Сообщение было отмечено Meluk13 как решение

Решение

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
#include <iostream>
#include <string>
#include <regex>
#include <fstream>
#include <cstdlib>
#include <iterator>
#include <windows.h>
 
int main()
{
    std::ifstream ifs("in.txt");
    if (!ifs.is_open())
    {
        std::cerr << "Unable to open file\n";
        exit(1);
    }
    std::string str((std::istreambuf_iterator<char>(ifs.rdbuf())), std::istreambuf_iterator<char>()), smb;
    std::regex rs("\\s*(.*?(?:[!?]|\\.(?!\\d)))");
    for (std::sregex_iterator ib(str.begin(), str.end(), rs), ie; ib != ie; ++ib)
    {
        std::cout << ib->str(1) << std::endl;
        if (!std::regex_search(ib->operator[](1).first, ib->operator[](1).second, std::regex("(^|[^\\d.])\\d{2}(?!(\\.\\d|\\d))")))
        {
            smb += ib->str(1) + "\n";
        }
    }
    ifs.close();
 
    MessageBoxA(0, smb.c_str(), "Предложения без двузначных целых", MB_OK);
}
1
 Аватар для Meluk13
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 6
22.03.2018, 23:49  [ТС]
igorrr37, спасибо, помогло!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2018, 23:49
Помогаю со студенческими работами здесь

Считывание текста у txt файла.Прoблема с кириллицой(с кодировкой)(консоль)
Проблема в следующем,когда я создаю txt файл обычным текстовым редактором windows а он используют кодировку Ansi. То когда моя программа...

Создать консольное приложение на С/С++ для обработки и печати текста
Создать приложение которое бы -обрабатывала текст -печатала весь текст -печать файла ***печать всех слов содержащих букву А ...

Перетаскивание файла в консольное приложение
Доброго всем времени суток. Написал небольшое консольное приложение (чисто для саморазвития) работающее по принципу: 1) вводишь...

Как сделать перенос из отдного txt файла текста в другой txt файл в Turbo C?
Надо сделать с потоками. fopen fgets fputs - с этими функциями

Считывание из файла .txt
У вас есть файл input.txt содержащий строки вида key:value key1:value1 Необходимо открыть файл и вывести содержимое в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru