Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: [C/C++] aus txt datei lesen und als int speichern

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19

    [C/C++] aus txt datei lesen und als int speichern

    hi
    ich will aus einer textdatei (in der ersten zeile steht 1) auslesen und in eine variable speichern damit ich damit weiterrechnen kann... kann ihc das mit streams machen oder wie geht das?
    mfg Knallerbse
    registered Linux user #296907

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Code:
    #include <fstream>
    #include <iostream>
    
    int main()
    {
    	std::ifstream file("datei");
    	int zahl;
    
    	if(file >> zahl)
    		std::cout << zahl << std::endl;
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    hmm.. und wie rechne ich jez damit?
    mfg Knallerbse
    registered Linux user #296907

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Original geschrieben von knallerbse
    hmm.. und wie rechne ich jez damit?
    Hmm?
    Du hast jetzt in der Variablen zahl die 1 aus deiner Datei drinstehen.
    Jetzt kannst du damit weiterrechnen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    #include <fstream>
    #include <iostream>

    int main()
    {
    std::ifstream file("datei");
    int zahl;

    if(file >> zahl)
    std::cout << zahl << std::endl;

    // jez sollte er doch eigentlich 1 ausgeben oder?

    cout << zahl << endl;

    // tut er aber net

    }

    er gibt gar nix aus. er liest den wert ein und beendet das programm
    mfg Knallerbse
    registered Linux user #296907

  6. #6
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Tut er ja wohl. Allerdings darfst du auch beim zweiten mal das std:: nicht weglassen.

    Oder hast du evtl. die "datei" nicht mit einem newline beendet? Vielleicht brauchts das - k.A.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  7. #7
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Heißt deine Datei auch datei?
    Steht da auch eine 1 am Anfang drin?

    Dann füg' nochmal Fehlerbeschreibung hinzu.
    Code:
    #include <fstream>
    #include <iostream>
    
    int main()
    {
    	std::ifstream file("datei");
    	int zahl;
    
    	if(file >> zahl)
    		std::cout << zahl << std::endl;
    	else
    		std::cout << "Error reading" << std::endl;
    }

  8. #8
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    also
    ich compilier und fuehre aus. der code is wie oben nur halt mit test.txt

    armin@linux:/data/> ./a.out
    armin@linux:/data/>

    es steht eine 1 in der text.txt drin udn die is auhc mit einer newline abgeschlossen
    mfg Knallerbse
    registered Linux user #296907

  9. #9
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    im Sample ist die Rede von "datei" - du hast das doch nicht etwa nicht abgeändert?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  10. #10
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    denkst du ich bin net ganz schmackes? natuerlich hab ich des geaentert!
    mfg Knallerbse
    registered Linux user #296907

  11. #11
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Original geschrieben von knallerbse
    denkst du ich bin net ganz schmackes? natuerlich hab ich des geaentert!
    Ja denke ich

    Nein. Im Ernst. Die Frage war n bisschen (so ne Stunde verspätet) - der Tab war wohl irgendwo in meinem Browser. Nachdem du das so bestätigt hast glaube ich dir das natürlich.

    Aber: Bei mir gehts (muss es auch). Also liegt der Fehler entweder bei dir oder deinem System.

    1) Gehen andere C++ Programme die du kompilierst?
    2) Was is mit einem Debugger? GDB oder so sollte zumindest Hinweise geben, dass da ein Problem is.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  12. #12
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    1. es geht alles was ich compilier
    2. es gibt ja kein problem in dem sinne dass ichs net ausfuehren koennt oder so. ihc kann nur damit net weiterarbeiten weil wenn ich eine ausgabe der variable machen passiert nix. er gibt sie einfach net aus. ich glaub du hast mich falsch verstanden oder ich hab mich falsch ausgedrueckt (kommt ja des gleiche dabei raus )
    mfg Knallerbse
    registered Linux user #296907

  13. #13
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Und wenn du die Variable auf 0 initialisierst wird auch 0 ausgegeben?

    Damit wäre mal schon sicher das lesen Schuld.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  14. #14
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19
    ok. ich habs zum laufen gebracht. er gibt mir jez die 1 aus die in der txt datei steht... gut

    jez will ich in die txt datei z.b. x*x eingeben und der soll mir im programm die variable x*x erkennen und ersetzen.
    siehe meinen falschen code hier:
    die x in der text.txt soll der x in der schleife entsprechen
    .
    for(x=1;x<10;x++){
    int y;
    y = zahl;
    //sozusagen y = x*x
    //macht er aber net

    cout << y << endl;
    }
    .
    hier sollte er dann machen
    1
    4
    9
    16
    25
    36
    49
    64
    81

    wie bekomm ich die char dazu ne int zu werden?
    mfg Knallerbse
    registered Linux user #296907

  15. #15
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    wie bekomm ich die char dazu ne int zu werden? [/B]
    So:
    PHP-Code:
    char blub 'c';
    ...
    int gaga = (int)blub;  // int gaga = blub; ginge auch, dann wird implizit ein Cast gemacht 
    Und was dein x*x betrifft:
    Du hast in der Textdatei wirklich "x*x" stehen? Du müsstest also also einen Parster schreiben, der das Zeug ausliest und erkennt welche mathematische Operation dahinter steckt (in diesem Fall die Multiplikation zweier Zahlen). Das ist quasi schon die Vorstufe zu einem eigenen kleine Compiler . Viel Spass.

    Und zu deiner Schleife. Wenn du willst, dass die Qudratzahlen, beginnend ab der Zahl aus der Textdatei ausgegeben werden, dann so:
    PHP-Code:
    int zahl;
    // wie schon gelesen zahl aus Datei lesen
    ...
    int dummy;
    for( 
    zahlzahl<10zahl++)
    {
        
    dummy zahl*zahl;
        
    cout << zahl << endl;

    Beachte, dass die Variable zahl dann verändert wurde. Wenndies nicht erwünscht ist, dann einfach zahl in eine temporäre Variable kopieren.
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •