eatwhite() funktion
-
Hallo,
vorab, ich hab die Sufu benutzt aber nichts wirklich brauchbares für mein Problem gefunden
Erstmal der Quelltext meines Programms:
#include <string> #include <iostream> #include <fstream> using namespace std; int main() { fstream puffer; string datei; string ausgabe; cout<<"Methoden zur Dateiverarbeitung: eatwhite()"<<endl; cout<<"Name der Quelldatei: "; getline(cin,datei); puffer.open(datei.c_str(), ios::in); getline(puffer,ausgabe); istream& eatwhite(istream& ausgabe); cout<<ausgabe<<endl; system("pause"); }Egal was ich bei eatwhite in den Klammern schreibe, es passiert nichts.

eatwhite soll aus meiner Textdatei, die ich zuvor einlese, alle Leerzeichen, Tabulatoren, usw. löschen.Ich hoffe das hat hier irgend jemand verstanden
ist ja noch ziemlich früh.
-
Was heißt "es passiert nichts"?
Wo ist die Methode eatwhite?
-
Bisher ist eatwhite dort nur die lokale Deklaration einer freien Funktion. Ein Aufruf wird da nicht gemacht (kein Wunder dass nichts passiert).
Aufrufen würdest Du so eine Funktion:
eatwhite(puffer);
-
Man definiert Funktionen für gewöhnlich auch nicht innerhalb von anderen Funktionen, sollte also ungefähr so aussehen:
istream& eatwhite(istream& ausgabe) { //... } int main() { // ... eatwhite( puffer ); // ... }
-
Was mir grad beim ueberfliegen noch aufgefallen ist: du definierst saemtliche variablen am Anfang deiner Funktion. Das mag bei C und FORTRAN Pflicvht sien, bei C++ ist es eher unueblich. Definiere die Variablen am besten da wo du anfaengst sie zu benutzen. Das hat zwei Vorteile: Erstens, wenn du eine Variable am Anfang deklarierst und dann 200 Zeilen spaeter erst benutzt, muss jemand der sich deinen Code anschaut (z.B. du selbst in ein paar Wochen) erst wieder nach oben scrollen um zu sehn welchen Typ die Variable denn hatte. Zweitens kannst du die Variable vor Ort meist gleich mit einem sinnvollen Anfangswert initialisieren, und gerade bei groesseren Objekten sparst du so den Aufruf von sinnfreien Standardkonstruktoren.
-
pumuckl schrieb:
Was mir grad beim ueberfliegen noch aufgefallen ist: du definierst saemtliche variablen am Anfang deiner Funktion. Das mag bei C und FORTRAN Pflicvht sien, bei C++ ist es eher unueblich.
Selbst bei C99 wurde diese Pflicht abgeschafft.