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

Pobieranie macierzy z pliku

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
588 wizyt
pytanie zadane 27 kwietnia 2021 w C i C++ przez Fluxik Nowicjusz (240 p.)
To jest przykładowy plik txt:

{ 1 0 0 }
{ 0 1 0 }
{ 0 0 1 }

{ 1 2 3 }

Są w nim dwie macierze które muszę pobrać a potem je ze sobą pomnożyć. Niestety mój problem zaczyna się już na samym początku bo rozmiary macierzy nie zawsze będą takie jak w tym przykładzie więc program powinien sam na podstawie pliku sprawdzić rozmiary. Nie mam pojęcia jak się za to zabrać. Próbowałem zrobić jakąś pętle która zlicza linie w pliku dopóki nie natrafi na pustą ale nie działało a pomysły mi się już skończyły. Pokazywać tej pętli chyba nie ma po co bo jest beznadziejna Z góry dziękuję za jakąkolwiek pomoc.
komentarz 27 kwietnia 2021 przez tkz Nałogowiec (42,020 p.)

1 odpowiedź

0 głosów
odpowiedź 27 kwietnia 2021 przez j23 Mędrzec (195,260 p.)
edycja 27 kwietnia 2021 przez j23

Można tak:

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <vector>

const char* ws(const char *s) 
{
    while(*s && std::isspace(*s)) ++s;
    return s;
}

bool expect(const char* &s, char c)
{
    const char* s2 = ws(s);
    if(*s2 == c) { s = s2 + 1; return true; }
    return false;
}

std::vector<int> parseLine(const char* s)
{
    std::vector<int> v;
    
    if(expect(s, '{')) {
        while(*s && !expect(s, '}')) {
            char* s2;
            v.push_back(std::strtol(s, &s2, 10));
            s = s2;
        }
    }
    
    return v;
}

int main()
{
    std::string line;
    
    while (std::getline(std::cin, line)) {
        auto v = parseLine(line.c_str());
        for(auto i : v) std::cout << i << ' ';
        if(v.empty()) std::cout << "------------\n";
        else std::cout << '\n';
    }
}

 

Podobne pytania

0 głosów
0 odpowiedzi 468 wizyt
pytanie zadane 23 kwietnia 2020 w C i C++ przez razorv17 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 552 wizyt
pytanie zadane 18 listopada 2019 w C i C++ przez Barczer Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 504 wizyt
pytanie zadane 17 września 2020 w C i C++ przez regge03 Nowicjusz (130 p.)

93,172 zapytań

142,184 odpowiedzi

321,965 komentarzy

62,496 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 918p. - dia-Chann
  2. 902p. - Łukasz Piwowar
  3. 901p. - CC PL
  4. 894p. - Łukasz Eckert
  5. 872p. - Michal Drewniak
  6. 867p. - Marcin Putra
  7. 858p. - rafalszastok
  8. 856p. - rucin93
  9. 842p. - Dawid128
  10. 840p. - Adrian Wieprzkowicz
  11. 830p. - Piotr Aleksandrowicz
  12. 826p. - Michał Telesz
  13. 819p. - Mariusz Fornal
  14. 814p. - Mikbac
  15. 812p. - TheLukaszNs
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...