Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Obsługa plików... problem z getline.

Ostatnio zmodyfikowano 2012-09-11 07:42
Autor Wiadomość
Mhmmm
Temat założony przez niniejszego użytkownika
Obsługa plików... problem z getline.
» 2012-09-11 02:43:15
Przeczytałem tą cała lekcje i znowu się wkur***m... cały dzień mi się zbiera, bo coś nie działa... najpierw sfml i coraz to nowy błąd, mimo robienia wszystkiego kilka razy według tutka i szukania odpowiedzi w sieci, teraz to...

Mam tu taki kod z samego końca lekcji:
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
    fstream plik;
    plik.open( "dane.txt", ios::in );
    if( plik.good() )
    {
        string napis;
        cout << "Zawartosc pliku:" << endl;
        while( !plik.eof() )
        {
            getline( plik, napis );
            cout << napis << endl;
        }
        plik.close();
    } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
   
    getch();
    return( 0 );
}
Nie działa mi getline... pisze ze getline jest undefined i nie wiem o co chodzi, bo niby kod powinien działać.. z poprzednimi kodami tez miałem problem, tym bardziej ze to tylko "urywki", szczególnie z tymi z zapisem do pliku(dodam że szukałem trochę odpowiedzi na forum i nic, nawet na próbę brałem kod kogoś kto rozwiązał jakiś swój problem i niby działa i coś nie tak jest z zapisem do pliku u mnie). Nie obraz się DejaVu i choć zdaje sobie sprawę, że to stare materiały jeszcze nie poprawione, nie które, to dziś czytając tą lekcje zdałem sobie sprawę, że masz coś z Xiona od kursu "Od zera do gier kodera" (mam nadzieje że miałeś), którego nie dałem rady przeczytać dalej niż do końca 4 rozdziału. Wszystko za zbyt ogólne omówienie i brak ładu w tym kursie, za to że im dalej się dochodzi tym częściej coś nie działa, mimo tego że się kompiluje, za to że męczyłem się z zadaniem z 3 rozdziału i musiałem poszukać odpowiedzi na necie, a odpowiedz do zadania z 3 rozdziału była na końcu rozdziału 4, piękna logika pisania kursu...

Proszę Cię, DejaVu nigy nie pisz już czegoś w stylu "zakładamy, że plik udało się otworzyć", "zakładamy, że plik istnieje", "zakładamy, że nie wystąpił błąd (plik otwarto/utworzono)", tylko wyjaśnij, jak to zrobić, aby nie trzeba było zakładać lub wyobrażać sobie istnienie czegoś... i gdzie szukać ewentualnego pliku lub gdzie go utworzyć. Dobrze by było gdybyś omawiał już gotowy plik cpp lub kilka, który działa po skompilowaniu, a nie wstawiał tylko urywki...

Inna sprawa. Myślę że gdybyś umieścił osobny dział obok dokumentacji i samego kursu, w tym pasku na górze. Dział poświęcony gotowym plikom cpp do własnego analizowania lub już opisane z możliwością edycji jedynie dla zasłużonych użytkowników tej strony(od jakiejś tam liczby postów, aby ktoś nie mieszał w przykładach), może również rozwiązania zadań i ich różnych wersji rozwiązania dla późniejszego analizowania, może z jakimś zabezpieczeniem czasowym, które uniemożliwi bezmyślne kopiowanie lub zaglądanie nowym użytkownikom... Myślę, że mogłoby to sprawić, że ta strona byłaby jeszcze lepsza.
P-64779
xevuel
» 2012-09-11 07:42:45
Nie zawsze wszystko działa od razu po skopiowaniu - powiem więcej, to są bardzo rzadkie przypadki. W 90% są to pliki kompilowane na innych kompilatorach, napisane w C a nie w C++, mające dołączone liby do projektu, itd... Trzeba myśleć. Sam wiesz, że ten kurs jest stary, i pewne rzeczy mogły inaczej wyglądać dawniej, niż dzisiaj.

Co do tego:

Proszę Cię, DejaVu nigy nie pisz już czegoś w stylu "zakładamy, że plik udało się otworzyć", "zakładamy, że plik istnieje", "zakładamy, że nie wystąpił błąd (plik otwarto/utworzono)", tylko wyjaśnij, jak to zrobić, aby nie trzeba było zakładać lub wyobrażać sobie istnienie czegoś... i gdzie szukać ewentualnego pliku lub gdzie go utworzyć.
W tym momencie zostało przedstawione tylko ogólne pojęcie, jak należy wywoływać daną funkcję - owszem, może można to było przedstawić w innej postaci. Ale gdybyś przeanalizował ten gotowy program na końcu który podajesz, wiedziałbyś już, jak można się zabezpieczyć przed tym, że plik nie istnieje.

Dobrze by było gdybyś omawiał już gotowy plik cpp lub kilka, który działa po skompilowaniu, a nie wstawiał tylko urywki...
Takie postępowanie wymusza myślenie, gdzie co i kiedy należy wrzucić, bo skopiować kod to i 7-letnie dziecko potrafi.

Wracając do tematu. Jakiego kompilatora używasz? GCC kompiluje bezwarningowo. Jeśli Visual, to z tego co wiem, ma on nieco inaczej poukładane pliki nagłówkowe... W google pisze, żebyś dołączył
#include <string>
. Spróbuj.
P-64780
« 1 »
  Strona 1 z 1