Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 09.03.2022
Сообщений: 75

Построчное считывание файла

23.12.2022, 13:23. Показов 1642. Ответов 22

Студворк — интернет-сервис помощи студентам
Здравствуйте. Вот код 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <semaphore.h>
#include <unistd.h>
#include "fcntl.h"
#include "sys/stat.h"
#include <iostream>
#include <string>
#include <cstring>
 
using namespace std;
 
void processCharacter(char);
void removeFirst(char*);
 
int main(void)
{
  (void)umask(0);
  
  const int buffSize = 10;
  sem_t *mutex = sem_open("mutex", O_CREAT, 0666, 1);
  sem_t *writeCount = sem_open("write_count", O_CREAT, 0666, buffSize);
  sem_t *readCount = sem_open("read_count", O_CREAT, 0666, 0);
  
  char *characters = new char[buffSize];
  int fd;
  while(1)
  {
    sleep(2);
    sem_wait(readCount);
    sem_wait(mutex);
    
    fd = open("data", O_RDONLY, 0666);
    read(fd, characters, buffSize);
    close(fd);
    
    processCharacter(characters[0]);
    removeFirst(characters);
    fd = open("data", O_WRONLY | O_TRUNC, 0666);
    write(fd, characters, strlen(characters));
    close(fd);
    
    sem_post(mutex);
    sem_post(writeCount);
  }
}
void processCharacter(char character)
{
  cout << "Процесс: " << getpid() << " символ-время: " << character << endl;
}
void removeFirst(char *characters)
{
  int i = 1;
  int len = strlen(characters);
  while (i < len)
  {
    characters[i - 1] = characters[i];
    i++;
  }
  characters[i - 1] = '\0';
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2022, 13:23
Ответы с готовыми решениями:

Построчное считывание из файла
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;malloc.h&gt; typedef struct { double x1; double y1; double x2; ...

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

Построчное считывание из файла
Всем привет! Функция, которая считывает из файла значения и помещает их в массив. Проблема в том, что даже из файла не читает :-(...

22
1 / 1 / 0
Регистрация: 09.03.2022
Сообщений: 75
23.12.2022, 15:22  [ТС]
Студворк — интернет-сервис помощи студентам
DrOffset, добавил, запустил, и опять же ничего не вывело, да файл называется data, пробывал и создавал другие, файл находится в текущем каталоге все верно

Добавлено через 9 минут
DrOffset, мне кажется что здесь больше проблема с выводом, я сейчас просто попробывал вывести "cout<<''a''<<endl;'', и ничего не вывелось
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
23.12.2022, 15:22
Лучший ответ Сообщение было отмечено Arsenicum как решение

Решение

Arsenicum, sem_wait у вас исходя из чего должен отпустить ожидание? Видимо из-за того, что он ждет, у вас до чтения файла дело и не доходит. Т.е. тут уже не в чтении дело, а в работе с семафором.
1
1 / 1 / 0
Регистрация: 09.03.2022
Сообщений: 75
23.12.2022, 15:26  [ТС]
DrOffset, так и есть, ладно, благодарю вас за потраченное время, без вас бы было сложнее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2022, 15:26

Построчное считывание файла
поделитесь готовой функцией или способом, с помощью которого можно считать с текстового файла ПОСТРОЧНО данные разных типов. например,...

Построчное считывание файла
В файле у меня все строки вида: \x53\x74\x69\x6C\x6C\x2E\x2E\x2E\x00 Код считывающий файл построчно: ifstream i(&quot;first.dlg&quot;);...

Построчное считывание матрицы из файла
Написал код ifstream fout(&quot;1.txt&quot;); if (fout.is_open()) { int i,j, N=0; fout&gt;&gt;N; //Считываю значение N ...

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

Построчное считывание файла txt в массив
Добрый день. Пытаюсь вспомнить &quot;как там считывать из файла&quot;, вроде бы делала, но давно это было. Сейчас сижу, кручу-верчу, а понять...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru