Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
kd32n65
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
28.10.2012, 14:14     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #1
Дан файл 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. Помогите как это реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 14:14     Считать несколько строк из файла зная их количество и сложить числа в каждой строке
Посмотрите здесь:

C++ Из файла считать третью строку и посчитать количество слов в этой строке
C++ Найти максимальный элемент в каждой строке двумерного массива по модулю, и сложить их
C++ Найти количество символов всех строк файла и количество символов в определенной строке
C++ Подсчитать количество всех строк, а потом - количество слов в каждой строке
В двумерном массиве 4х4. В каждой строке найти количество элементов больше данного числа D C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kd32n65
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
29.10.2012, 16:45  [ТС]     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #2
up-to-date
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.10.2012, 17:14     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #3
Так?
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;
   }
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 17:35     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #4
Цитата Сообщение от kd32n65 Посмотреть сообщение
Помогите как это реализовать.
Сначала считывается первая строка (нужное число строк), потом организуется цикл считывания и сложения, с количеством итераций равных этому числу.
kd32n65
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
29.10.2012, 22:38  [ТС]     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #5
Цитата Сообщение от 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::" ?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2012, 01:52     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #6
Цитата Сообщение от kd32n65 Посмотреть сообщение
Что за "std::" ?
Пространство имён. Можно написать после инклюдов: using namespace std; и убрать std:: из кода. Всё остальное относится к STL (стандартная библиотека шаблонов).
Yandex
Объявления
30.10.2012, 01:52     Считать несколько строк из файла зная их количество и сложить числа в каждой строке
Ответ Создать тему
Опции темы

Текущее время: 08:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru