• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem ze struktura i suma

Mały hosting, OGROMNE możliwości
0 głosów
1,067 wizyt
pytanie zadane 23 czerwca 2021 w C i C++ przez Eriss69 Gaduła (4,470 p.)
Witajcie, oto moj problem:

https://github.com/jaroslawroszyk/-how-many-pages-per-day/tree/forumIDK

 

Na moim github'ie macie moj programik :/ Problem polega na tym ze potrzebuje funkcje sumujaca "pages"

przykladowy plik .txt:

Date: 28.07, number of pages: 21
Date: 29.07, number of pages: 2

 

 

Jesli z menu wyboru wybiore opcje sumuj powinna wyjsc mi suma number of pages z pliku txt  czyli w tym przypadku 23 kompletnie nie wiem jak do tego sie teraz zabrac :/
komentarz 23 czerwca 2021 przez TOM_CPP Pasjonat (22,640 p.)

Tutaj masz przykład https://godbolt.org/z/eW6a5K71e

komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)

@TOM_CPP, ale ja nie opruje na vectorach tylko stringach :) moglbys uzyc to do mojego kodu z githuba?

 

komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
bo musze to z pliku wyciagnac a idk jak
komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
bo nie moge dac po prostu k.pages dziekuje.. tak samo f unkcja sum powinna byc bez argumentow
komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)

@TOM_CPP, móglbys wplesc to w moja funkcje suma bo juz nie mam pojecia probowalem w tym zrobic cos ale to jest wielkie xD

2 odpowiedzi

+3 głosów
odpowiedź 23 czerwca 2021 przez mokrowski Mędrzec (158,960 p.)

Bez szczególnego optymalizowania, podział na ':', ignorowanie 2 pól z tym separatorem i wczytanie trzeciego:

#include <iostream>
#include <fstream>
#include <limits>


int main() {
	auto file = std::ifstream("data.txt");
	// TODO: Error open file..
	int sum = 0;
	for(;;) {
		file.ignore(std::numeric_limits<std::streamsize>::max(), ':');
		file.ignore(std::numeric_limits<std::streamsize>::max(), ':');
		if(file.eof() || file.bad()) {
			break;
		}
		int i;
		file >> i;
		sum += i;
	}
	std::cout << "sum = " << sum << '\n';
}

 

+2 głosów
odpowiedź 23 czerwca 2021 przez Bondrusiek Maniak (61,460 p.)

Cześć,

zrobiłem funkcje, którą robi to co opisałem w komentarzy do tego pytania. Może Ci to pomoże

void sum(HowManyPages p)
{
    std::string line;
    std::cout << "sum all pages \n";
    std::ifstream outFile;
    outFile.open("data.txt", std::ios::app);
    if (outFile.is_open())
    {
        while (getline(outFile, line))
        {
             std::string token1 = line.substr(line.find(",")+1, line.length()-1);
             std::string token2 = token1.substr(token1.find(":")+1, token1.length()-1);
             p.pages = std::stoi(token2);
             p.sum += p.pages;
        }

        outFile.close();
    }
    else
    {
        std::cout << "Unable to open file! \n";
    }
    std::cout << "Sum of pages : " << p.sum << std::endl;
}

 

komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
nie działa mi ta funkcja twoja :/
komentarz 23 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
Edit dzila :D wybacz +200

Podobne pytania

0 głosów
0 odpowiedzi 679 wizyt
pytanie zadane 15 stycznia 2021 w C i C++ przez janusz_cpp Nowicjusz (120 p.)
0 głosów
1 odpowiedź 295 wizyt
pytanie zadane 12 czerwca 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)
+1 głos
2 odpowiedzi 897 wizyt
pytanie zadane 8 grudnia 2018 w C i C++ przez MAXIM7 Obywatel (1,990 p.)

93,715 zapytań

142,629 odpowiedzi

323,260 komentarzy

63,257 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...