Hallo,
ich Viele von Euch könne solche Fragen bald sicher nicht mehr hören bzw. lesen. Aber ich komme mit den SAchen die ich hier bisher dazu gefunden habe einfach nicht klar. Also zu meinem Problem:
Ich will Dateien einlesen auf deren Zeilen Datensätze mit beliebig vielen Parametern stehen (also Zeilen die Datensätze, Spalten die jeweiligen Parameter).
Soweit bin ich :
Und ich kriege dann folgende Fehlermeldung:
Ich habe nun das Gefühl das ich mich hier total verzettelt habe und vielleicht hat ja von Euch einer Lust mir zu helfen hier Ordnung reinzubringen. Danke schon mal.
Steffen
ich Viele von Euch könne solche Fragen bald sicher nicht mehr hören bzw. lesen. Aber ich komme mit den SAchen die ich hier bisher dazu gefunden habe einfach nicht klar. Also zu meinem Problem:
Ich will Dateien einlesen auf deren Zeilen Datensätze mit beliebig vielen Parametern stehen (also Zeilen die Datensätze, Spalten die jeweiligen Parameter).
Soweit bin ich :
Code:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main()
{
char dateiname[80];
std::cout << "Bitte Quelldateiname eingeben:";
std::cin.getline(dateiname, 80);
std::ifstream quelldatei; // anlegen eines File-Stream für die Quelldatei
quelldatei.open(dateiname,std::ios::in); // öffnen der Quelldatei für die Koeffizienten
if (!quelldatei) // datei.fail()
{
std::cerr << "Datei konnte nicht geöffnet werden\n" << std::endl;
return 1;
}
int zeilenNr = 0;
char zeile[256];// Zeile mit maximal 256 Zeichen
double laenge[256];
double breite[256];
while( quelldatei.getline(zeile, sizeof(zeile)) ) // Zeilenweise lesen der Quelldatei solange letzte Zeile nicht erreicht ist
{
std::string laeng;
std::string breit;
std::istringstream hilfsZeile (zeile);
hilfsZeile >> laeng >> breit;
breite[zeilenNr] = std::atof(breit);
laenge[zeilenNr] = std::atof(laeng);
std::cout << "eingelesene laenge" << laenge[zeilenNr] << std::endl;
std::cout << "eingelesene breite" << breite[zeilenNr] << std::endl;
++zeilenNr;
}
if (!quelldatei.eof())
{
std::cerr << "\nLesefehler!\n" << std::endl;
return 2;
}
quelldatei.close();
std::cout << "Quelldatei geschlossen";
return 0;
}
Und ich kriege dann folgende Fehlermeldung:
Code:
main.cpp: In function `int main()':
main.cpp:40: cannot convert `std::string' to `const char*' for argument `1' to
`double atof(const char*)'
main.cpp:41: cannot convert `std::string' to `const char*' for argument `1' to
`double atof(const char*)'
mingw32-make: *** [main.o] Error 1
Ich habe nun das Gefühl das ich mich hier total verzettelt habe und vielleicht hat ja von Euch einer Lust mir zu helfen hier Ordnung reinzubringen. Danke schon mal.
Steffen