ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
483
483
EMPFEHLEN
-
moin,
ich versuch C++ zu lernen und hab ne Aufgabe bekommen, welche wie folgt lautet:
Was geschieht intern beim Schreiben/Lesen einer Ganzzahl mit den Anweisungen
int zahl;
cin >> zahl;
cout << zahl;
Entwickel dafür einen "Ersatzquelltext", der nur auf der Ein- bzw. Ausgabe einzelner Zeichen basiert, d.h., erlaubt sind nur die Anweisungen
char c;
c=cin.peek();
cin=cin.get();
cout.put(c);
nun, beim ersten Teil denke ich, wird ne Zahl zeichenweise eingelesen bis Ende-Null, gespeichert und schließlich zeichenweise wieder ausgegeben. Ich weiß nur nich, ob das als Antwort ausreicht.
Den zweiten Teil könnte ich lösen, indem ich ne while-Schleife benutze, aber genau das soll ich ja vermeiden, denke ich.
Könnt ihr mir bei meinem Problem und dieser Aufgabe helfen?
Vielen Dank im voraus...
-
04.04.05 09:04 #2
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Den zweiten Teil kannst du ohne Schleife garnciht realisieren!
mfg
umbrasaxum
-
na den zweiten Teil wollte ich wie folgt schreiben:
char zeichen;
while(cin.get(zeichen)) cout.put(zeichen);
cin.peek() liefert mir ja das nächste Zeichen, aber wozu brauch ich das dann noch? Die Aufgabenstellung hört sich für mich aber so an, als ob ich das zwingend nutzen müsste...
-
04.04.05 18:17 #4
also das lässt sich auch rekursiv lösen... Ich Poste nacher mal nen Lösungsvorschlag.
edit:
Hust ich glaub das wird doch nix draus, mein C tut ned des was es soll, sry.
Aber Rekursiv ging des auch.Geändert von NomadSoul (04.04.05 um 18:39 Uhr)
-
Hy!
@NomadSoul:
Warum willst du das denn rekursiv lösen? Sicherlich geht es auch, aber eine rekursion ist doch völlig unnötig, und bei langen Textzeilen verbrauchst du nur unnötig Speicher ( für die eine Variable die du in der Funktion deklarieren musst)
@zwob
Es ist meiner Meinung nach schon erlaubt, das so zu machen, jedenfalls steht dort nichts davon, das du alle Funktionen benutzen musst.
Eindeutig: "erlaubt sind nur die Anweisungen"
Und die Schleife muss auch erlaubt sein, denn anders ist das Problem nicht sinnvoll zu lösen.
mfg
uhu01
-
04.04.05 22:31 #6
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Was hällst du von dieser Lösung?!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <iostream> using namespace std; int main() { char c; while(cin.peek() != '\n') { c = cin.get(); cout.put(c); } cin.get(); //optional return 0; }
mfg
umbrasaxum
-
jo, ich glaub das ist die gesuchte Lösung. Is eigentlich gar nich so schwer, aber irgendwie fehlt mir noch n bissl der Überblick um sowas zu lösen
Tausend Dank für Eure Hilfe
-
05.04.05 07:02 #8
naja, wenn unser Prof so eine Aufgabe stellt, dann ist klar das nur diese Konstrukte benutzt werden dürfen.
Für mich klingt das Rekursiv, und jedes itterative Problem ist auch rekursiv lösbar oder wars umgekehrt ...
-
05.04.05 08:49 #9
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Die Aufgabe wäre auch Rekursiv lösbar, ist aber in diesem Fall völlig unnötig...
mfg
umbrasaxum
Ähnliche Themen
-
Anfänger-Problem
Von IFIllusion im Forum C/C++Antworten: 13Letzter Beitrag: 13.05.07, 20:01 -
Anfänger problem
Von itwasjustme im Forum PHPAntworten: 3Letzter Beitrag: 30.06.05, 23:35 -
anfänger problem mit if
Von Germanterminaotr im Forum PHPAntworten: 17Letzter Beitrag: 12.01.05, 09:51 -
Anfänger Problem
Von igfas im Forum C/C++Antworten: 5Letzter Beitrag: 07.09.03, 19:40 -
Anfänger Problem!
Von Dark Dämon im Forum Cinema 4DAntworten: 2Letzter Beitrag: 09.06.03, 10:22





Zitieren
Login






