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

Problem z odczytaniem zawartości pliku <fstream>

Ostatnio zmodyfikowano 2013-11-24 18:47
Autor Wiadomość
Zdziwiony
Temat założony przez niniejszego użytkownika
Problem z odczytaniem zawartości pliku <fstream>
» 2013-11-24 17:36:10
Witam, mam problem z odczytaniem danych z pliku *.txt Mój kod wygląda następująco:

C/C++
if( komenda == "otworz" )
{
    string nazwa = "przyklad.txt";
    cout << "Podaj sciezke pliku do otworzenia\n";
    cin >> nazwa;
    fstream plik2;
    plik2.open( nazwa.c_str(), std::ios::in | std::ios::out );
    if( plik2.good() == true )
    {
        std::cout << "Plik zostal otwarty pomyslnie!\nJego zawartosc zostala zaladowana ponizej:\n" << std::endl;
        char bufor[ 1024 ];
        plik2.read( bufor, 1024 );
    } else std::cout << "Wystapil blad! Nie mozna otworzyc pliku!" << std::endl;
   
}
system( "pause" );

Ten kod co prawda po podaniu nazwy pliku lub jego ścieżki wywala komunikat, że plik otwarto pomyślnie, lecz nie chce wczytać mi do konsoli zawartości pliku ;/
Gdzie popełniłem błąd ?

Pozdrawiam

P-97336
pekfos
» 2013-11-24 17:41:44
Skąd wiesz, że nie chce?
P-97338
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 17:43:21
Bo odpaliłem program wpisałem nazwę pliku czyli: test.txt (znajdował on się w tym samym katalogu co plik .exe) no i wyskoczył komunikat: "Plik otwarto pomyślnie (...)" A zawartości pliku nie wczytał ;/

PS: Oczywiście plik.txt zawiera kilka znaków tj: "abcde"
P-97340
Wasilek
» 2013-11-24 17:45:34
Sprawdź czy aby na pewno nic nie ma w zmiennej "bufor" :)
P-97342
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 17:47:31
Nic nie ma.
Cały kod:
C/C++
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>

using namespace std;

int main()
{
    cout << "Co chcesz zrobic:\nUtworz - Utworz\nOtworz - otworz\n";
    string komenda;
    SetConsoleTitleA( "Notepad:D" );
    cin >> komenda;
    if( komenda == "utworz" )
    {
        string nazwa = "przyklad.txt";
        cout << "Podaj nazwe pliku do utworzenia";
        cin >> nazwa;
        ofstream plik( nazwa.c_str() );
        plik.open( nazwa.c_str(), std::ios::in | std::ios::out );
        if( plik.good() == true )
        {
            std::cout << "Plik zostal utworzony!" << std::endl;
            //tu operacje na pliku
        } else std::cout << "Wystapil blad! Nie mozna utworzyc pliku!" << std::endl;
       
    }
   
    //otworz
   
   
    if( komenda == "otworz" )
    {
        string nazwa = "przyklad.txt";
        cout << "Podaj sciezke pliku do otworzenia\n";
        cin >> nazwa;
        fstream plik2;
        plik2.open( nazwa.c_str(), std::ios::in | std::ios::out );
        if( plik2.good() == true )
        {
            std::cout << "Plik zostal otwarty pomyslnie!\nJego zawartosc zostala zaladowana ponizej:\n" << std::endl;
            char bufor[ 1024 ];
            plik2.read( bufor, 1024 );
        } else std::cout << "Wystapil blad! Nie mozna otworzyc pliku!" << std::endl;
       
    }
    system( "pause" );
}

Dziwne, że nie działa... Co nie ?
P-97343
pekfos
» 2013-11-24 17:49:11
Gdzie to sprawdzasz?

Dziwne, że nie działa... Co nie ?
Nie.
P-97344
Zdziwiony
Temat założony przez niniejszego użytkownika
» 2013-11-24 17:49:37
W folderze na pulpicie :)
P-97345
kubek3898
» 2013-11-24 17:49:42
Wczytujesz plik do bufora, ale później nic z tym buforem nie robisz (np. nie wyświetlasz go).
P-97346
« 1 » 2 3 4
  Strona 1 z 4 Następna strona