CommNews Forum Home  

Zurück   CnC Foren > Verschiedenes > Tech-Support / Tech-Talk

Antworten
 
Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 01-09-2007, 13:40
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.506
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
C++ Dateiausgabe

Wahrscheinlich ein lächerlicher Fehler, aber ich finde ihn nicht. Warum gibt mein Code das letzte Zeichen einer Datei doppelt aus?

Code:
ifstream Eingabe;

Eingabe.open(Datei.c_str(), ios_base::in);

cout << "\nGebe Datei aus: \n";

char zeichen;

while (!Eingabe.eof())
{
        Eingabe.get(zeichen);
	cout << zeichen;
}

Eingabe.close();
cout << endl;
Ich habe übrigens ein Buch gekauft (äusserst preiswert, da Mangelexemplar), in der Hoffnung, daraus ordentliches C++ zu lernen. Ich hab die ersten 326 Seiten übersprungen, weil ich das alles schon wusste, und landete sofort im Anhang. Der Code oben ist fast 1 zu 1 abgeschrieben, nur die Variablen habe ich anders gewählt (und en bissken getrimmt...). Kann ich also von abraten
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #2  
Alt 01-09-2007, 17:02
Benutzerbild von Bernd_XP
Bernd_XP Bernd_XP ist offline
MARV-Fahrer

 
Registriert seit: Jun 2002
Ort: Augusta Vindelicorum
Beiträge: 7.432
Bernd_XP hat noch keine Bewertung oder ist auf 0
Bernd_XP eine Nachricht über ICQ schicken
OL Nick: Be.XPerimental
Style: Dune
Also ich fänds ja ned schlecht, wenn ich die Funktionsweise der Unterprogramme kennen würde
__________________

Nach der GetBoinked5 von [Unbekannt]: "Ich hab aus Gewohnheit und Versehen zu meiner Freundin gesagt: Thekenschlampe bring mir noch n Bier"
Mit Zitat antworten
  #3  
Alt 01-09-2007, 21:30
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.506
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
Definiere "Unterprogramm". Das ist schon alles. Eigentlich fehlt nur die Deklaration von "Datei" (ist ein String, der den Dateinamen enthält) und der Rest des Programms ist dafür nicht relevant, weil auf nichts darin noch einmal referenziert wird.

Übrigens, mal prophylaktisch: Ich weiss, dass man das auch anders ausgeben kann, habs im Endeffekt auch über cout gemacht, aber ich würde gerne wissen, warum der oben stehende Code nicht funktioniert, wei er soll.
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #4  
Alt 02-09-2007, 16:24
Benutzerbild von Gonzo
Gonzo Gonzo ist offline
Cabal

 
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 2.476
Gonzo hat noch keine Bewertung oder ist auf 0
Style: USA
Ich bzw. mein VS kann irgendwie mit dem ifstream nix anfangen, von was ist das abgeleitet bzw. welche includes werden dafür verwendet ?
__________________


MfG Gonzo
Mit Zitat antworten
  #5  
Alt 02-09-2007, 16:45
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.506
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
ifstream ist ein reiner input file stream aus fstream. Was soll VS abkürzen?
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #6  
Alt 02-09-2007, 21:03
Benutzerbild von Gonzo
Gonzo Gonzo ist offline
Cabal

 
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 2.476
Gonzo hat noch keine Bewertung oder ist auf 0
Style: USA
Hmm, wenn du
Code:
		if(Eingabe.get(zeichen) != 0)
			cout << zeichen;
verwendest funktioniert es
Warum es mit nur while nicht funzt, kann ich nicht wirklich erklären, vermute nur dass die Datei nach dem Lesen des letzten Zeichens halt noch nicht eof ist, sondern erst eines später, deshalb wird das letzte Zeichen doppelt ausgegeben ( get schlägt fehl und zeichen bleibt unverändert ).
VS = Visual Studio
__________________


MfG Gonzo
Mit Zitat antworten
Antworten

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:47 Uhr.


Powered by vBulletin Version 3.7.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS

Affiliates
United Forum GetBoinKeD cnc.onlinewelten.de