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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
kd32n65
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
#1

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

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

C++ Из файла считать третью строку и посчитать количество слов в этой строке
C++ Подсчитать количество чисел в каждой строке файла
Посчитать количество чисел в каждой строке текстового файла C++
C++ Найти максимальный элемент в каждой строке двумерного массива по модулю, и сложить их
В двумерном массиве 4х4. В каждой строке найти количество элементов больше данного числа D C++
C++ Считать матрицу с файла, не зная ее размерности
Посчитать количество слов в каждой строке текстового файла C++
C++ Файл: Подсчитать количество строк , которые оканчиваются буквой 's', и считать их из файла.
C++ Считать матрицу из файла, найти количество строк, содержащих хотя бы один ноль (файловый ввод/вывод)
В каждой строке заданной матрицы найти количество элементов, больших заданного числа C++
Удалить в каждой строке лишние пробелы; исходную информацию считать из текстового файла C++
C++ Подсчитать количество символов в каждой строке текстового файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kd32n65
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 8
29.10.2012, 16:45  [ТС]     Считать несколько строк из файла зная их количество и сложить числа в каждой строке #2
up-to-date
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 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
5415 / 4811 / 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
5415 / 4811 / 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     Считать несколько строк из файла зная их количество и сложить числа в каждой строке
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru