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

Problem Z Odczytem Pliku

0 głosów
467 wizyt
pytanie zadane 5 sierpnia 2019 w C i C++ przez Garper Początkujący (360 p.)

Mój problem dotyczy odczytu pliku ,ponieważ za każdym razem kiedy odczytuje plik na ekranie konsoli pojawia się tylko 0.

 

Moje 2 kody.

#include <iostream>
#include <fstream>
using namespace std;
string imie,nazwisko;
int numer;


int main()
{
    fstream plik;
    cout << "Napisz swoje imie:";
    cin>>imie;
    cout<<"Npisz swoje nazwisko:";
    cin>>nazwisko;
    cout<<"Napisz swoj numer:";
    cin>>numer;

    plik.open("Nazwa .txt", ios::out);

    plik<<imie<<endl;
    plik<<nazwisko<<endl;
    plik<<numer<<endl;

    plik.close();





    return 0;
}
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
string imie,nazwisko;
int numer;


int main()
{
    fstream plik;


    plik.open("Nazwa .txt", ios::out);
    if(plik.good()==false)
    {
        cout<<"Plik nie istnieje!";
        exit(0);
    }

    string linia;
    int nrlini;
    while(getline(plik,linia))
    {
        switch(nrlini)
        {
            case 1: imie=linia; break;
            case 2: nazwisko=linia; break;
            case 3: numer=atoi(linia.c_str());
        }

        nrlini++;
    }




    plik.close();

    cout<<imie<<endl;
    cout<<nazwisko<<endl;
    cout<<numer<<endl;



    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 5 sierpnia 2019 przez j23 Mędrzec (195,220 p.)
  • Linie 4, 5 (1) i 5, 6 (2): dlaczego te zmienne są globalne?
  • Linia 22 (2): powinieneś ustawić nrlini wartość 1.

PS. Linia w dopełniaczu ma dwa i na końcu.

komentarz 5 sierpnia 2019 przez Garper Początkujący (360 p.)

Odczyt dalej wskazuje tylko 0.

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
string imie,nazwisko;
int numer;


int main()
{
    fstream plik;


    plik.open("Nazwa .txt", ios::out);
    if(plik.good()==false)
    {
        cout<<"Plik nie istnieje!";
        exit(0);
    }

    string linia;
    int nrlinii=1;
    while(getline(plik,linia))
    {
        switch(nrlinii)
        {
            case 1: imie=linia; break;
            case 2: nazwisko=linia; break;
            case 3: numer=atoi(linia.c_str());
        }

        nrlinii++;
    }




    plik.close();

    cout<<imie<<endl;
    cout<<nazwisko<<endl;
    cout<<numer<<endl;



    return 0;
}

 

1
komentarz 5 sierpnia 2019 przez j23 Mędrzec (195,220 p.)

Jeszcze jeden błąd: otwierasz strumień w drugim kodzie z flagą out, a powinno być in.

 

Na przyszłość używaj strumieni std::ifstream i std::ofstream odpowiednio do odczytu i zapisu pliku. Unikniesz tego typu błędów.

komentarz 5 sierpnia 2019 przez DragonCoder Nałogowiec (36,500 p.)
Czy ta nazwa .txt jest prawidłowo!? Nie wiem, czy chciałeś tam dac zmienna z nazwa pliku jaka poda user, czy to blad, a moze to bylo zaplanowane o ten plik tak sie nazywa?
komentarz 5 sierpnia 2019 przez Garper Początkujący (360 p.)
Dziękuję wszystkim za pomoc.
+1 głos
odpowiedź 5 sierpnia 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Czy jesteś pewien, że nazwa Twojego pliku to Nazwa (spacja).txt
komentarz 5 sierpnia 2019 przez Garper Początkujący (360 p.)
Tak jestem pewien.

Podobne pytania

0 głosów
1 odpowiedź 1,202 wizyt
pytanie zadane 27 marca 2020 w C i C++ przez Hubert731 Obywatel (1,650 p.)
0 głosów
0 odpowiedzi 275 wizyt
0 głosów
0 odpowiedzi 551 wizyt

93,759 zapytań

142,716 odpowiedzi

323,364 komentarzy

63,357 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...