Wpis z mikrobloga

Da się wczytywanie plików "zapisywać w if'ach" ? Załóżmy, że użytkownik musi wybrać a lub b i w zależności od wyboru program wczytuje odpowiedni plik. Próbuje, to zapisać tak:
if (dziedzina==a)
{
fstream plik;
plik.open("quiz1.txt", ios::in);

}

else
{
fstream plik(muszę tutaj zmienić nazwe na np plik1, czy tak może zostać?);
plik.open("quiz2.txt", ios::in);
}

Ale coś nie bangla i program nie wczytuje żadnego pliku. Wiem, że mogę po prostu wczytać sobie od razu wszystkie pliki i gdzieś dalej dodać jakiś warunek, ale chyba(?) nie jest to praktyczny sposób.

#naukaprogramowania
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bachuxd: Wiem że to dopiero nauka, ale tworząc kod staraj się go pisać w taki sposób, aby jak najmniej powielać ten sam kod. W Twoim przypadku if powinien decydować o tym o jakiej nazwie plik zostanie otwarty, a nie od razu go czytać itp. Dlatego lepiej jest zrobić coś takiego (traktuj to jako pseudokod, nie wiem w jakim języku programowania to robisz):

string filename;

if(dziedzina == a){
filename
  • Odpowiedz
@bachuxd: https://pastebin.com/UXLwkVSx Co do twojego snippeta to powielenie zmiennej plik w else nie przeszkadza. Zmienna ma 'zasięg/scope' i poza blokiem { } w którym jest zdeklarowana nie można się do niej dostać więc nie ma duplikatu. Gorzej by było jakby plik był zdeklarowany najpierw poza blokiem if-else, a potem wew. - w cpp kompilator nie będzie prostestował, bodajże nazywa się to przesłanianiem zmiennych. Trzeba uważać na takie sytuacje bo są
  • Odpowiedz