Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ Problem z kodem | otwieranie pliku .txt


Rekomendowane odpowiedzi

Opublikowano

Hej
Mam problem z kodem a dokładniej z otwieraniem pliku .txt

 

1.Kod na pastebianie: pastebian (linijka 58)

2.A tu kod w spojlerze:

 

 

#include <iostream>
#include <cstdlib> //losowae liczby
#include <fstream> //fs::
 
using namespace std;
 
int x, liczbalosowa; //x=twoj wybor
 
void obrazPowitalny() {
    system( "cls" );
    cout<<"======================"<<endl;
    cout<<"== Generator  Imion =="<<endl;
    cout<<"==                  =="<<endl;
    cout<<"==      1.Start     =="<<endl;
    cout<<"==      2.Exit      =="<<endl;
    cout<<"==                  =="<<endl;
    cout<<"======================"<<endl;
    cout<<">"; cin>>x;
}
 
void wykonajOperacje( int numer, string napis ) {
 
    if(numer==liczbalosowa)
        cout<<numer<<" "<<napis<<endl;
 
}
 
bool wczytywaniePliku( string nazwaPliku ) {
 
    ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( !plik.good() )
        cout<<"Blad-2"<<endl;
        return false;
 
    while (true) {
        int a;
        string b;
        plik >> a >> b;
        if ( plik.good() )
            wykonajOperacje( a , b );
        else
            cout<<"Blad-3"<<endl;
            break;
    }
 
    plik.close();
    return true;
}
 
int main()
{
    liczbalosowa = rand() % 11; //losowa liczba czyli loswoanie imion
 
    obrazPowitalny();
 
    if(x==1) {
        if( !wczytywaniePliku( "dane.txt" ) )
            cout<<"Blad-1"<<endl;
    }
    else if(x==2)
        exit(0);
    else
        cout<<"Nieprawidłowa opcja"<<endl;
 
    return 0;
}

Opublikowano
if( !plik.good() )
        cout<<"Blad-2"<<endl;
        return false;

brak nawiasów

 

@@

super że napisałem coś i k***a mi usunęło

Opublikowano

Pominąłeś nawiasy klamrowe po dwóch instrukcjach if.

 

Powinno być (od linijki 32):

if( !plik.good() ) {
    cout<<"Blad-2"<<endl;
    return false;
}
while (true) {
    int a;
    string b;
    plik >> a >> b;
    if ( plik.good() )
        wykonajOperacje( a , b );
    else {
        cout<<"Blad-3"<<endl;
        break;
    }
}
Opublikowano

Nadal to samo :/ błąd 1 i 2

A plik dane.txt chociaż masz w folderze projektu?

Opublikowano

Masz czytać z tego pliku, czy do niego zapisywać?

  • ifstream: Stream class to read from files

Jeśli chcesz z niego odczytywać(tak myślę) to nie lepiej zrobić jakiegoś getline? Jeśli zapisujesz to co? Te zmienne są puste.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Masz czytać z tego pliku, czy do niego zapisywać?

  • ifstream: Stream class to read from files

Jeśli chcesz z niego odczytywać(tak myślę) to nie lepiej zrobić jakiegoś getline? Jeśli zapisujesz to co? Te zmienne są puste.

Przecież widać że chce czytać, pobiera numery i imiona z pliku. Gdzie ty tu chciałbyś wcisnąć zapis?

Po co getline? Przecież najwyraźniej o tablicach nie słyszał, a więc musi wczytać zarówno numer, jak i nazwę. Getline odpada, bo nie wyciągnie się numeru(tak, wiem, ostatecznie da się ale po co skoro jest >>).

Opublikowano

Jesteś pewien, że w Projects >> Run >> i w polu Working directory masz tą lokalizacje? Zazwyczaj jest tam folder Build Project (tworzą się dwa, jeden z taką długą nazwą, a drugi z taką, jaką ty wybrałeś), a na ogół ludzie wkładają te pliki tekstowe do folderu <Nazwa Projektu> zamiast do tego z Build Project.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...