Probleme mit ifstream
-
Hallo Leute,
Ich habe folgendes Problem. Ich will eigentlich ein simples Programm schreiben um Daten aus einer File auszulesen. Ich will aber den Code auf zwei Klassen aufteilen. Also habe ich FILEREADER.CPP und MAIN.CPP geschrieben.
MAIN.CPP
#include "filereader.h"
#include <stdio.h>int main(int argc, char **args)
{
filereader dataReader;
dataReader.readDataFromFile();
return 0;
}FILEREADER>CPP
#include "filereader.h"
#include <fstream>
#include <sstream>
#include <iostream>using namespace std;
filereader::filereader()
{
}filereader::~filereader()
{
}bool filereader::readDataFromFile()
{
ifstream dataFile;
dataFile.open("testData.dat", ifstream::in);
if(!dataFile.is_open());
{
printf("Error: file could not be opened");
return false;
}
dataFile.close();
return true;
}Aber irgendwie will das nicht laufen. Der kann nie die Datei oeffnen. Ich bin fuer jede Hilfe dankbar.
Gruesse
Steff
-
Hallo,
Hier stimmt ja einiges nicht. Benutze auch bitte in Zukunft die Codetags.
bool filereader::readDataFromFile() { ifstream dataFile; dataFile.open("testData.dat", ifstream::in); // falsch, heißt ios::in und ist hier auch unnötig da ifstream if(!dataFile.is_open()); // Semikolon zuviel { printf("Error: file could not be opened"); // Warum printf? return false; } dataFile.close(); // close ist unnötig da das der Destruktor automatisch macht return true; }Also besser
bool filereader::readDataFromFile() { ifstream dataFile("testData.dat"); if(!dataFile.is_open()) return false; // jetzt was machen return true; }
-
Oh ja hab lange nicht mehr programmiert.
Das Semikolon war zuviel. Vielen Dank fuer die Hilfe.Gruesse
Steff