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

skopiowana ostatnia tablica C++

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
415 wizyt
pytanie zadane 20 maja 2023 w C i C++ przez Marcinuq Użytkownik (690 p.)

Witam!

Mam taki problem, że chcę z pliku wypisać 9 tablic dwuwymiarowych 8x8.

I kiedy wypisuje je pętlami to 9 tablica wypisana jest w konsoli dwa razy i nie wiem dlaczego.

Proszę o pomoc!

#include <bits/stdc++.h>

using namespace std;

int main()
{
    ifstream odczyt("szachy_przyklad.txt");
    char linia[8][8];

    while(!odczyt.eof())
    {
        for(int i=0; i<8; i++)
        {
            for(int j=0;j<8;j++)
            {
                odczyt>>linia[j][i];
                cout<<linia[j][i];
            }
            cout<<endl;
        }
        cout<<endl;
    }
    return 0;
}

 

1 odpowiedź

+3 głosów
odpowiedź 20 maja 2023 przez j23 Mędrzec (195,240 p.)
wybrane 3 czerwca 2024 przez Marcinuq
 
Najlepsza

Dlatego, że warunkiem pętli jest !odczyt.eof(), a ten będzie false dopiero, gdy nastąpi próba odczytu za plikiem, czyli przy próbie odczytu z pliku dziesiątej tablicy.

std::istream& readArray(std::istream& is, char tab[8][8]) 
{
    for(int i = 0; i < 8 && is; i++) {
        for(int j = 0; j < 8 && is >> tab[i][j]; j++) { }
    }

    return is;
}
...


while (readArray(odczyt, linia)) {
   for(int i = 0; i < 8; i++) {
        for(int j = 0; j < 8; j++) { 
            std::cout << linia[i][j] << ' ';
        }

        std::cout << '\n';
    }

    std::cout << '\n';
}

 

Podobne pytania

0 głosów
1 odpowiedź 533 wizyt
pytanie zadane 12 lutego 2020 w C i C++ przez amelia.cpp Obywatel (1,860 p.)
+3 głosów
1 odpowiedź 488 wizyt
pytanie zadane 2 września 2016 w C i C++ przez ShiroUmizake Nałogowiec (46,300 p.)
0 głosów
2 odpowiedzi 1,769 wizyt
pytanie zadane 8 maja 2016 w C i C++ przez programer Obywatel (1,190 p.)

93,434 zapytań

142,429 odpowiedzi

322,662 komentarzy

62,798 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

...