Kółko i krzyżyk.

0

Witajcie forumowicze!
Mam pewien problem, a konkretnie mam do napisania programik, który wczytuje z pliku kilka wyników gier w "Kółko i krzyżyk" i tutaj zaczynają się schody, ponieważ nie mogę używać "string'ów" :/ pojawia się pytanie do Was moi mili, a konkretnie w jaki sposób wczytać te dane do tablicy znaków, tak aby dane w tablicy prawidłowo się wyświetlały
Główkowałem dłuższą chwile nad tym, ale niestety żaden pomysł nie powstał w mojej główce, ponieważ nigdy nie musiałem używać tablic char.

PS. Znalazłem źródło problemu, temat można zamknąć. Przepraszam za kłopot ;)

0

Możesz zrobić coś takiego, ale jest to brzydkie :/ Ilość linii podana z palca to taka fuszerka, dopisz sobie funkcje, która sprawdza ile ich jest :)

#include <iostream>
#include <fstream>


int main(int argc, char *argv[])
{
    const int LINES = 20;
    const int LINE_LENGTH = 50;
    std::fstream file;
    char results[LINES][LINE_LENGTH];
    int counter = 0;
    file.open( "file.txt", std::ios::in );

    if (file.good() == true)
    {
        while( !file.eof() )
        {
            file >> results[ counter++ ];
        }
    }
    file.close();
    return 0;
}
0

Możesz wykorzystać:

Istnieje również druga funkcja służąca do wczytywania danych wierszami, jednak wydaje się ona mniej wygodna w użyciu. Jest nią funkcja getline(), zaszyta wewnątrz klasy fstream.
C/C++
istream & getline( char * odczytane_dane, streamsize ilosc_danych, char znak_konca_linii );
Parametry oznaczają kolejno:

(odczytane_dane) wskaźnik zmiennej, do której mają zostać wczytane dane z pliku;
(ilosc_danych) maksymalna ilość znaków jakie mogą zostać zapisane do zmiennej;
(znak_konca_linii) parametr jest opcjonalny. Umożliwia zmianę znaku końca linii.

Przykład wykorzystania tej funkcji:
C/C++
```cpp
std::fstream plik( "nazwa_pliku.txt", std::in ); //zakładamy, że plik istnieje
char dane[ 255 ];

plik.getline( dane, 255 ); //wczytanie jednego wiersza danych (lub częśći wiersza jeśli sie nie zmieści)

1 użytkowników online, w tym zalogowanych: 0, gości: 1