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

Считать несколько строк из файла зная их количество и сложить числа в каждой строке

28.10.2012, 14:14. Показов 5822. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан файл input.txt, в нем:
C++ (Qt)
1
2
3
4
5
6
5 //количетво строк
1 2 3 4 5// строка 1 и так далее...
1 2 3
10 2 3
1 80 8
3 3 3 3
Нужно считать эти строки, зная их количетво и в каждой строке посчитать сумму чисел, т.е в output.txt
должно вывести:
C++ (Qt)
1
2
3
4
5
15
6
15
89
12
Есть алгоритм как считывать сразу строки и сумму не составит труда найти:
C++ (Qt)
1
2
3
4
5
6
7
while(fscanf(f1,"%d",&s) == 1)
  {
    while((fscanf(f1,"%c",&c) == 1) && (c != '\n'))
      fscanf(f1,"%d",&a), s += a;
    fprintf(f2,"%d\n",s);
  }
}
но нужно именно если количество строк записано число 5, а строк будет 10 в файле, то нужно вывести сумму именно из 5 строк, а выводить будет естественно всех 10. Помогите как это реализовать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2012, 14:14
Ответы с готовыми решениями:

Дописать в файл количество строк, символов в каждой строке, чисел в каждой строке
Дан текстовый файл.Дописать в его конец следующие данные: количество строк, количество символов в каждой строке,количество чисел в каждой...

Bat файл, который делает нужное количество копий текстового файла, с разными именами, меняя несколько строк каждой копии
Добрый день, уважаемые. Острая необходимость у меня за выходные найти способ для генерации нужного количества одинаковых файлов для...

Файл: Определить количество строк файла, в каждой строке найти самое длинное слово и дописать его в конец
Ввести строки с клавиатуры. Создать файл, определить количество строк файла, в каждой строке найти самое длинное слово и дописать его в...

5
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
29.10.2012, 16:45  [ТС]
up-to-date
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
29.10.2012, 17:14
Так?
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
#include <fstream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <string>
#include <limits>
 
 
int main() {
   std::ifstream ifs("input.txt");
   std::ofstream ofs("output.txt");
 
   std::size_t amount;
   ifs >> amount;
 
   ifs.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
 
   for (std::size_t i = 0; i != amount; ++i) {
      std::string line;
      std::getline(ifs, line);
      std::istringstream iss(line);
      ofs << std::accumulate(std::istream_iterator<int>(iss), std::istream_iterator<int>(), 0) << std::endl;
   }
}
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 17:35
Цитата Сообщение от kd32n65 Посмотреть сообщение
Помогите как это реализовать.
Сначала считывается первая строка (нужное число строк), потом организуется цикл считывания и сложения, с количеством итераций равных этому числу.
1
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
29.10.2012, 22:38  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
Так?
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
#include <fstream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <string>
#include <limits>
 
 
int main() {
   std::ifstream ifs("input.txt");
   std::ofstream ofs("output.txt");
 
   std::size_t amount;
   ifs >> amount;
 
   ifs.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
 
   for (std::size_t i = 0; i != amount; ++i) {
      std::string line;
      std::getline(ifs, line);
      std::istringstream iss(line);
      ofs << std::accumulate(std::istream_iterator<int>(iss), std::istream_iterator<int>(), 0) << std::endl;
   }
}
Так то так. Но можно кое-что разъяснить? Что за "std::" ?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2012, 01:52
Цитата Сообщение от kd32n65 Посмотреть сообщение
Что за "std::" ?
Пространство имён. Можно написать после инклюдов: using namespace std; и убрать std:: из кода. Всё остальное относится к STL (стандартная библиотека шаблонов).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2012, 01:52
Помогаю со студенческими работами здесь

BinaryReader считать несколько строк из файла
Здравствуйте, есть проблема при чтении битового файла. В битовом файле находится n количество строк, есть следующий код: ...

Считать из файла символы до первой запятой в каждой строке
Нужно считать текст из файла,а именно символы до первой запятой в каждой строке... Например текст в файлеMobile JavaScript Application...

Сложить все числа в Мемо и разделить их на количество строк
Имеется memo с примерно таким текстом 220 227 232 783 204 198 219 204 209

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

В каждой строке матрицы найти последний четный элемент (считать, что такие элементы есть в каждой строке)
3.Задан двумерный массив (n × m) целых чисел. В каждом его строке найти последний парный элемент (считать, что парные элементы у каждой...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru