Plik zewnętrzny i liczby
Ostatnio zmodyfikowano 2015-11-25 11:18
nats Temat założony przez niniejszego użytkownika |
Plik zewnętrzny i liczby » 2015-11-24 21:31:00 Jak z pliku zewnętrznego, który zawiera dwie kolumny liczb oddzielonych tabulatorami, znaleźć liczbę wierszy oraz wpisać te pary liczby do struktury? |
|
michal11 |
» 2015-11-24 21:36:59 ifstream do otworzenia pliku. Wczytywać możesz operatorem >>. Dodatkowa zmienna do zapisywania liczby wierszy inkrementowana po wczytaniu każdej pary. Jeżeli chodziło ci o tablice struktur to powyższa zmienna może tez służyć za indeks tej tablicy do której będziesz wczytywała pary liczb.
Jak pokażesz kod będzie można powiedzieć coś więcej jak ci pomóc. |
|
carlosmay |
» 2015-11-24 21:37:25 Zliczasz w pętli ile razy w pliku występuje znak nowej linii. Wczytywanie operatorem wejścia '>>'. |
|
nats Temat założony przez niniejszego użytkownika |
» 2015-11-24 21:44:09 int main() { ifstream plik("plik.txt"); if(!plik) { cout << "Plik nie zostal otwarty"; return 1; }
int liczba; while(plik >> liczba) { cout << liczba; } plik.close(); return 0; }
Przy takim wczytywaniu liczb, program wyświetla jedynie pierwszą z pierwszego wiersza, dlaczego?
i czy przy wczytywaniu kolejnych znaków, zliczanie ma wyglądać tak? char c; int z; while(plik.get(c)) { cout << c; if(c=="/n") z++; } cout <<z; |
|
michal11 |
» 2015-11-24 22:47:04 Kod wstawiaj w znaczniki. Coś musi być nie tak z plikiem jeżeli pierwszy kod kończy wczytywać po pierwszym znaku, pokaż kilka pierwszych linijek z pliku. Nie potrzebna jest ta 2 petla wystarczy do pierwszej dodać licznik linii. |
|
nats Temat założony przez niniejszego użytkownika |
» 2015-11-24 22:55:51 Tutaj kilka linijek pliku: 115408960 2590747840 616780800 753444864 2318667264 1051087616 488800256 672631456 100327424 1856720816 3058739456 488035826 3561767110 964775360 3960307712 1920296616 1654578596 77814372 3284448320 3789208128 3048656896 580324864 2754490368 541519872 1462425728 3756234752
|
|
Monika90 |
» 2015-11-24 23:04:22 Liczba 2590747840 jest za duża i nie mieści się w zakresie typu int, użyj typu unsigned int, a może long long. |
|
carlosmay |
» 2015-11-24 23:09:04 Zmienna typu int ze znakiem ma maks = 2 147 483 647, a w pliku masz 2 590 747 840 jako drugą, więc jest niepowodzenie wczytywania i wyjście z pętli.
|
|
« 1 » 2 |