Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 14.06.2015
Сообщений: 60

подсчет количества заданных строк в выбранном файле

07.11.2016, 20:00. Показов 875. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
скажите, мне требуется реализовать:
1. "подсчет количества заданных строк в выбранном файле, каждая строка ищется отдельным дополнительным потоком, основной поток отображает количество уже найденных строк в процессе поиска и позволяет просматривать файл" ?

вот код:
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 <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
#include <clocale>
#include <sstream> //  заголовочный файл с классами, функциями и переменными для организации работы со строками
 
using namespace std;
 
int main() // определение главной функции
{
    //пример 8 Программа считает количество строк в файле add.txt выводит на экран и записывает в новый указанный пользователем файл.
    string a;
    setlocale (0, "");
    ofstream fout; // определение обьекта fout для вывода данных в файл
    ifstream fin; // определение обьекта fin для ввода данных из файла
    fin.open ("add.txt");
    cout << "Введите имя файла для записи" << endl;
    string name1;
    cin >> name1;
    string c = name1 + ".txt";
    fout.open (c.c_str(), ios::app);
    int line_nomer=0;
    string probel (" ");
    string sohr;
    while(getline(fin, a))
    {
        line_nomer++;
    }
    cout<<"Количество строк в файле add.txt = "<<line_nomer<<"\n"; //вывод на экран
    fout<<"Количество строк в файле add.txt = "<<line_nomer<<"\n"; //запись во второй файл
    fin.close();
    fout.close();
    system ("pause");
}
всё ли верно ? код работает и считает строки в файле add.txt
но происходят ли остальные действия как "ищется отдельным дополнительным потоком" и "позволяет просматривать файл" - как это просматривать файл? мне задание не ясно к тому же
спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2016, 20:00
Ответы с готовыми решениями:

Подсчет количества строк в файле в С++ (fstream)
Добрый день! Для подсчета строк в файле до сего момента использовал С'шные функции. Пожалуйста, подскажите, как это можно сделать,...

Подсчёт количества заданных слов в файле.
Собственно на старом добром Си необходима программа, подсчитывающая количество использования заданого из командной строки(!) слова в...

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

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.11.2016, 20:04
И где потоки? std::thread используй.
0
0 / 0 / 2
Регистрация: 14.06.2015
Сообщений: 60
07.11.2016, 20:17  [ТС]
тут читаю но не пойму где вставлять и как
0
07.11.2016, 20:30

Не по теме:

О как оно, в С++ то, std::thread - поток, i/o/if/of/stream - тоже поток. :D
Порой и не понять о чём конкретно говорит человек даже.

0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.11.2016, 20:50
Что-то типа этого, допиливай:
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <thread>
#include <atomic>
#include <mutex>
 
using namespace std;
 
std::ifstream ifs;
std::mutex m;
std::atomic<unsigned> n;
 
void do_work(int i)
{
    std::string s;
 
    while (true)
    {
        m.lock();
        std::getline(ifs, s);
        if (!ifs)
        {
            m.unlock();
            break;
        }
        std::cout << i << ": " << s << std::endl;
        m.unlock();
        if (s == "string") ++n;
    }
}
 
int main()
{
    ifs.open("data.txt");
    n = 0;
 
    thread t1(do_work, 1), t2(do_work, 2);
 
    t1.join();
    t2.join();
 
    cout << n << endl;
 
 
    system("pause");
}
1
0 / 0 / 2
Регистрация: 14.06.2015
Сообщений: 60
07.11.2016, 21:07  [ТС]
C++
1
2
getline: идентификатор не найден getline: не является членом "std"
бинарный не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.11.2016, 21:11
C++
1
#include <string>
0
0 / 0 / 2
Регистрация: 14.06.2015
Сообщений: 60
08.11.2016, 14:56  [ТС]
что то я последнее сообщение только в почте вижу, но всё равно спасибо

код отличный
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2016, 14:56
Помогаю со студенческими работами здесь

Clojure Обработка строк - подсчет количества заданных символов
Помогите, пожалуйста, решить задачу: Требуется подсчитать количество запятых, а также количество сочетаний знаков точки и следующей буквы...

Подсчет количества строк в файле
Здравствуйте. Хочу подсчитать определенные строки в файле, но ошибка чтения потока возникает. m- это количество строк в файле, занести...

Подсчет количества строк в текстовом файле
Здравствуйте, есть 2 файлика Excel. Необходимо написать скрипт, который подсчитывал бы кол-во записей в 1 файлике и вставлял такое кол-во...

Подсчёт количества строк в текстовом файле
Создать текстовый файл с произвольным текстом и через меню предусмотреть следующие действия: 1) просмотр содержимого файла; 2)...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru