Integerwerte die aus einer txt datei eingelesen werden werden nicht korrekt dargestellt



  • Hallo ichhabe folgendes problem : Ich versuche mit dem untenstehenden programm integer werte aus einer txt datei zu lesen allerdings bekomme ich statt dessen die speicheradresse statt den integer ausgegeben. woran liegt das? lg

    #include <iostream>
    #include<fstream>
    #include<string>
    using namespace std;
    
      int main()
    {
          int dim;
          int cap;
          int  tour;
          int zeta;
          int cars;
          float optimal;
           int x[250];
          int y[250];
          int d[250];
    
              ifstream stream;
    
               stream.open("kelly1.txt");
    
                stream>>dim>>cap>>tour>>zeta>>cars>>optimal;
    for(int i=0;i<dim;i++)
    {
        stream>>x[i];
        stream>>y[i];
        stream>>d[i];
    
    }
        stream.close();
      for(int i=0;i<dim;i++)
      {
          cout<<x[i];
          cout<<y[i];
          cout<<d[i];
      }
        return 0;
    }
    


  • Reinhold.Weihs schrieb:

    H... allerdings bekomme ich statt dessen die speicheradresse statt den integer ausgegeben.

    Was ist "die Speicheradresse"?
    Da du nirgendwo auf Fehler prüfst, gibst du vielleicht nicht initialisierte Wert aus.



  • Hallo ichhabe folgendes problem : Ich versuche mit dem untenstehenden programm integer werte aus einer txt datei zu lesen allerdings bekomme ich statt dessen die speicheradresse statt den integer ausgegeben. woran liegt das? lg

    warum willst du eine txt einlesen...?
    durch was sind die intger getrennt?
    oder hast du nur 1 zahl in der txt? (wie viele zahlen, dynamisch oder fest?)

    also spontan mache ich immer so etwas...
    das ähnelt dem einlesen einer csv datei...
    nur das ich da zahlen habe, diese könnte ich nun auch weiterverarbeiten...

    #include <iostream>
    #include <regex>
    #include <fstream>
    #include <string>
    
    int main()
    {
    	std::string temp;
    
    	//Pfad oder Datei auswählen
    	std::string pfad="test.txt";
    
    	//ifstream- zum öffnen der datei
    	std:: ifstream meineDatei(pfad);
    
    	//falls nicht offen...
    	if(!meineDatei)
    	{
    		std::cout << "Error- Datei konnte nicht geöffnet werden." << std::endl;
    	}
    
    	//solange noch zeilen gelesen werden
    	while(std::getline(meineDatei, temp,';'))
    	{
    		std::cout << temp << std::endl;
    	}
    
    	meineDatei.close();
    }
    

    meine text datei sieht jetzt mal zum beispiel so aus:

    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    1;2;3;4;5;6;7;8;9
    

    so kannst du jede zahl einzeln weiterverarbeiten...
    hast du jedoch nur 1 zahl in der txt würde ich dir ein anderes vorgehen empfehlen... 🙂
    hoff ich konnte helfen... 🙂

    manni66 schrieb:

    Reinhold.Weihs schrieb:

    H... allerdings bekomme ich statt dessen die speicheradresse statt den integer ausgegeben.

    Was ist "die Speicheradresse"?
    Da du nirgendwo auf Fehler prüfst, gibst du vielleicht nicht initialisierte Wert aus.

    würde ich auch sagen oder du greifst über deine arraygrenzen hinaus... 🙄



  • ps. mir ist gerade aufgefall es ging ja speziell um ints, dazu kannst du einfach dann einfach falls du wirklich rechnen möchtest dann einfahc den string in ein entsprechendes zahlenformat umwandeln...
    musst du vorher nur noch schauen ob das nur zahlen sind...
    das geht mit string-funktionen aber ganz gut... (alternativ auch isdigit oder ähnliches)...

    😃



  • Hallo jetzt läuft alles wie es soll . danke an alle die geantwortet haben, ein tolles gefühl das alle mithelfen!! lg und dANKE 💡 🙂

    #include <iostream>
    #include<fstream>
    #include<string>
    using namespace std;
    
      int main()
    {
    int dim=0;
    int cap=0;
    int  tour=0;
    int zeta=0;
    int cars=0;
    float optimal;
    int dx[200]={0};
    int dy[200]={0};
    int dd[200]={0};
    int x=0;
    int y=0;
    int d=0;
    
     ifstream stream;
       stream.open("kelly01.txt");
    
    if(!stream)
    {
        cerr<<"Die Datei kann nicht geöffnet werden"<<endl;
    
    }
    
        stream>>dim>>cap>>tour>>zeta>>cars>>optimal;
        stream>>x>>y;
     for(int i=0;i<dim;i++)
     {
        stream>>dx[i]>>dy[i]>>dd[i];
    
     }
    
      cout<<dim<<" "<<cap<<" "<<tour<<" "<<zeta<<" "<<cars<<" "<<optimal<<" "<<endl;
      cout<<x<<" "<<y<< " "<<"Depo"<<endl;
       for(int i=0;i<dim;i++)
       {
           cout<<dx[i]<<" "<<dy[i]<<" "<<dd[i]<<endl;
       }
    
    return 0;
    
    }
    


  • und das war die txt datei zum einlesen!! vielen dank wie gesagt

    75 140 999999 0 10 835.26
     40 40  
     22 22 18
     36 26 26
     21 45 11
     45 35 30
     55 20 21
     33 34 19
     50 50 15
     55 45 16
     26 59 29
     40 66 26
     55 65 37
     35 51 16
     62 35 12
     62 57 31
     62 24 8
     21 36 19
     33 44 20
     9 56 13
     62 48 15
     66 14 22
     44 13 28
     26 13 12
     11 28 6
     7 43 27
     17 64 14
     41 46 18
     55 34 17
     35 16 29
     52 26 13
     43 26 22
     31 76 25
     22 53 28
     26 29 27
     50 40 19
     55 50 10
     54 10 12
    

Anmelden zum Antworten