[C++] - Was ist hier Falsch?

cyrrus

Grünschnabel
Code:
	int status = 0;
	char filename[] = "test.txt";
	char ch;

	ifstream fin;
	
	fin.open(filename);

	if(!fin){
		status = 1;
	}else{
		while(fin.get(ch)){
			cout<<ch;
		}
		fin.close();
	}
	cout<<endl;

ch ist immer leer, obwohl es die datei die er auslesen sollte gibt und auch text drin ist!
 
probier das mal so:
Code:
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  int status = 0;
  char datei[128];
  char ch;
  ifstream fin;

  cout << "Dateiname: " << flush;
  cin.getline(datei, 127, '*');
  fin.open(datei, ios_base::in);
  if (test.good())
  {
    while (!fin.eof())
    {
      fin.get(ch);
      cout << ch;
    }
    fin.close;
  }
  else
  {
    cout << "Datei konnte nicht geoeffnet werden." << endl;
    return 1;
  }
  cout << endl;
  return 0;
}
 
das funktioniert nicht, weil du nur prüfst, ob die variable (das objekt) fin false ist oder nicht. wenn du wissen willst, ob die open-methode richtig funktioniert hat, kannst du das mit der methode good() überprüfen.
ausserdem fehlt bei der open-methode schon der zweite parameter (falls der nicht optional ist) und du solltest besser mit eof arbeiten, um zum ende der datei zu kommen.
und ich glaube am anfang ist schon die zuweisung der variable filename falsch. (kann aber sein, dass ich mich da irre, ich hab beides nicht ausprobiert).
 

Neue Beiträge

Zurück