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?
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
Code:#include <fstream> #include <iostream> int main() { std::ifstream file("datei"); int zahl; if(file >> zahl) std::cout << zahl << std::endl; }
hmm.. und wie rechne ich jez damit?
mfg Knallerbse
registered Linux user #296907
Hmm?Original geschrieben von knallerbse
hmm.. und wie rechne ich jez damit?
Du hast jetzt in der Variablen zahl die 1 aus deiner Datei drinstehen.
Jetzt kannst du damit weiterrechnen.
#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
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)
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; }
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
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)
denkst du ich bin net ganz schmackes? natuerlich hab ich des geaentert!
mfg Knallerbse
registered Linux user #296907
Ja denke ichOriginal geschrieben von knallerbse
denkst du ich bin net ganz schmackes? natuerlich hab ich des geaentert!
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)
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
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)
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
So:wie bekomm ich die char dazu ne int zu werden? [/B]Und was dein x*x betrifft:PHP-Code:
char blub = 'c';
...
int gaga = (int)blub; // int gaga = blub; ginge auch, dann wird implizit ein Cast gemacht
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:Beachte, dass die Variable zahl dann verändert wurde. Wenndies nicht erwünscht ist, dann einfach zahl in eine temporäre Variable kopieren.PHP-Code:
int zahl;
// wie schon gelesen zahl aus Datei lesen
...
int dummy;
for( zahl; zahl<10; zahl++)
{
dummy = zahl*zahl;
cout << zahl << endl;
}
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