Cześć,
mam malutki problem, otóż poniższy kod nie działa tak jak powinien, a wydaje mi się że powinien działać dobrze :)
#include <stdlib.h>
#include <fstream>
#include <string.h>
using namespace std;
int main()
{
char c;
char str[256];
ifstream is;
do
{
cout << "Enter the name of an existing text file: ";
cin.get (str,256);
is.open (str); // open file
}
while(!is.is_open());
while (is.good()) // loop while extraction from file is possible
{
c = is.get(); // get character from file
if (is.good())
cout << c;
}
is.close();
system("PAUSE");
return 0;
}
Gdy podaję nazwę pliku który istnieje program poprawnie wyświetla znaki na ekranie, jednak gdy podaję nazwę niewłaściwą, wówczas program się zapętla ... Próbowałem również z goto jednak efekt taki sam jak powyżej.
Próbowałem również czyścić tablicę str[256] bo wydawało mi się, że może przetrzymuje wpisaną niepoprawną nazwę pliku, ale również nie działa. Czyściłem w ten sposób:
for (int i =0 ; i <256 ; i++)
{
str[i]='\0';
}
Macie pomysł, dlaczego nie działa ? Chodzi mi, żeby przy wpisaniu złej nazwy program pytał o nazwę ponownie i tak do skutku aż nazwa będzie poprawna.