ich brauche erneut eure hilfe und zwar bei folgendem Problem.
Ich bin dabei eine ART system für supermarktkassen zu schreiben. Und zwar muss ein neues Produkt mir Artikelnummer Name und Preis eingepflegt werden, dann wird eine Datei erstellt deren Name der Artikelnummer entspricht.
Nun muss man die Ware scannen (im meinem Fall ist es aber eher ein abtippen der Artikelnummer ;D) das Programm öffnet dann also die Datei deren Name eben der Artnr entspricht liest den Namen und den Preis.
Gaaanz später soll dann noch eine Rechnung erstellt werden wo dann fein säuberlich alle Artikel samt ihrem Preis aufgezählt werden, aber das ist noch ein Stückchen Arbeit.
Im moment jedoch zerbricht es mir den Kopf die Strings aus der Datei in für mich nutzbare werte zu wandeln. Ich habe bereits soetwas ähnliches geschrieben, da hat der Script wunderbar geklappt.
was ihr hier seht ist quasi eine 1 zu 1 kopie vom schoneinmal verwendetem funktionierendem code, lediglich die Variablen wurden geändert.
int ware::laden(){
string inhalt;
cout \> artikelnummer;
warenname.open(artikelnummer, ios::in); // öffnen der Datei
if(!warenname.is\_open()){ //falls es entgangen sein sollte den Artikel einzupflegen
cout
Hier noch die klasse
class ware{
private:
char artikelnummer[9];
char name[20];
float preis;
fstream warennamefstream; //zum schreiben in die Datei
ifstream warenname; //zum einlesen
public:
void einpflegen();
void scannen();
void ausgeben();
int laden();
};
wie gesagt der selbe, leicht veränderte code, hat bereits Wunderbar funktioniert, bloß hier nicht :frowning:
hoffe ihr wisst weiter
grüße
tim
nein Fehlermeldungen gibt es nicht, das problem besteht darin das strcpy eigentlich den Wert von inhalt in den Wert von „name“ schreiben soll. aber genau das klappt nicht.
und mit preis = atof(inhalt.c_str()) will ich den wert den Inhalt an dieser Stelle angenommen hat in in einen float umwandeln und damit „preis“ initialisieren.
aber auch das funktioniert wieder nicht.
das Inhalt die Werte von getline bekommt hab ich mit meinem Test festgestellt. bloß beim umwandeln haperts.
wenns keine Fehler gibt liegt es wohl an den Daten , das ist aufgabe eines jeden Programmierers die daten zu debuggen. Welche sind wo , funnktioniert die funktion etc etc
Das folgende Zeigt das die Funktion nicht das Problem ist. Also wenn es keine Fehler gibt aber deine Ausgabe nicht das ist was du erwartest, dann musst du erstmal prüfen ob überhaupt Daten vorliegen .
// TestCLR.cpp: Hauptprojektdatei. #include „stdafx.h“ #include #include
using namespace std;
int main(array ^args)
{
// ware diewahre ;
// diewahre.laden();
char name[20];
string inhalt = „Hallo“;
strcpy(name,inhalt.c_str());//das nicht
cout
Nein, das müsste eigentlich nicht gehen. c_str() liefert einen const char* und den kann man nicht an einen char* zuweisen … Zudem ist das Ganze nach der naechsten „Reallocation“ im string schon nicht mehr gültig …