Ofstream - Kleines Prob!?
-
dogeye schrieb:
if(sp_pos == ("1.0.3705)",0)!=string::npos)Wat'n das? Du fragst ab, ob sp_pos gleich Null ist und überprüfst das Ergebnis dieses Vergleichs (FALSE) mit string::npos.
richtig sollte es wohl so heißen:if(zeile.find("1.0.3705)")!=string::npos)
-
jo aber so gibt er wenigstens halb richtig alles aus wenn ich zeile find gibt er den kompletten gescannten text aus ...
sag ja voll seltsamm das muss man sehen was das doofe programm macht ich bin schon total confused!
-
#include <cstdlib> #include <iostream> #include <fstream> #include <string> #include "stdio.h" using namespace std; int main(int argc, char *argv[]) { char fileName[80]; char buffer[255]; char newFileName[80]; cout << "Dateiname: "; // Eingabe Welche Datei gelesen werden soll cin >> fileName; // Variable für den Dateiname cout << "Neuer Dateiname: "; cin >> newFileName; ifstream fin(fileName); ofstream fout(newFileName); string zeile; while(getline(fin, zeile)) //zeilenweise einlesen { string::size_type sp_pos = zeile.find("\t"); string nummer = zeile.substr(1,sp_pos); //erster Abschnitt zeile.erase(0,sp_pos+1); if(zeile.find("Firefox",0) >= 0) { zeile = "FireFox"; fout << nummer << ' ' << zeile << endl; } else if(zeile.find("MSIE",0) >= 0) { zeile = "hallo3"; fout << nummer << ' ' << zeile << endl; } else fout << nummer << ' ' << zeile << endl; } system("PAUSE"); return EXIT_SUCCESS; }so das ist der aktuelle code! Da funzt das nummern ausgeben und das löschen! Aber ich habe immer noch das problem das er über all die zeile von der 1. If schleife hinschreibt

auch wenn ich nur nach " 3 " suchen würde und im anderen nach " 1 " schreibt er nur die 1 ifabfrage
-
Mein Tip: Debugger

Und nun vergleichst du die Rückgabe von find() mit dem falschen Wert - find() liefert einen size_t (=unsigned irgendwas), der ist auf jeden Fall >=0.
-
und was is dann richtig
-
if(zeile.find(whatever)[b]!=string::npos[/b])"npos" ist ein definierter Wert in der Stringklasse, den die Such-Funktionen für "nichts gefunden" zurückgeben.
-
das is doch scheisse! Dann heist das ja das er nicht mal die ziffer 1 in der ganzen zeile findet! unmöglich! die is min 5 mal enthalten!!! Aber es wir immer die ganze eingelesene Zeile wieder Ausgegeben! son scheiss!!!
boeh koennt ausflippen mit dem kack programm da

-
Wenn du die Ziffer '1' suchst, mußt du auch nach '1' suchen und nicht nach "1 " (das wäre eine 1 gefolgt von einem Leerzeichen).
PS: Ich überlege gerade, dir eine Version auf map-Basis anzubieten :xmas1: Aber ich glaube nicht, daß du damit zurechtkommen würdest
-
denke mal nich
bin n99b.Oh man aber wenn ich nach "FireFox" suche is doch normal 'FireFox' geht doch net oda voallem net wenn ich "FireFox 1.0.7" suche
-
In dem Ausschnitt, den du oben gepostet hast, heißt das auch immer "Firefox" (mit kleinem 'f' hinten) - das ist etwas anderes als FireFox.
-
ja das sind ja auch nur beispiele .. aber es funktioniert trotzdem nicht man
