Probleme mit strcmp



  • Ich möchte eine datei Zeilenweise auslesen
    dazu hab ich folgendes Konstrukt:

    char Inhalt[80][256]

    nun will ich zum beispiel nach "CPU" in einer der ausgelesenen Zeilen (Inhalt[i])suchen.

    dazu hab ich mir folgendes ausgedacht:
    for( int i=0;i<80;i++)
    if (strcmp("CPU",(char*) Inhalt[i])== true) cout<<Inhalt[i]<<endl;

    aber irgendwie funktioniert das nich so wie ich möchte. Statt dessen wir einach jede Zeile ausgegeben!(Eigentlich möchte ich ja nur die Zeilen in denen CPU vorkommt ausgeben)

    Kann mir da jemand helfen?
    Gruss Mobi23
    😕



  • strcmp giebt nicht true zurück, wenn die String gleich sind (wie kommst du überhaupt darauf). Es giebt 0 zurück wenn sie gleich sind, sonst kleiner oder grösser 0, je nachdem welcher string grösser war. --> MSDN Nachschaun

    [EDIT] dh du musst nur das (strcmp(....) == true) auf (strcmp(....) == 0) ändern. Und es müsste funktioniern.[/EDIT]



  • Mobi23 schrieb:

    (Eigentlich möchte ich ja nur die Zeilen in denen CPU vorkommt ausgeben)

    Kann mir da jemand helfen?
    Gruss Mobi23
    😕

    Nicht ganz das was Du haben wolltest, aber wenn Du schon im C++ Forum nachfragst:

    Bitte schön, einmal aus einer Datei alle Zeilen ausgeben in den CPU vorkommt:

    #include <fstream>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc,char * argv[])
    {
    	ifstream file("t:\\test.txt");
    
    	string temp;
    
    	while(getline(file,temp))
    	{
    		if(temp.find("CPU") != string::npos)
    			cout<<temp<<'\n';
    	}
    }
    


  • Danke das mit dem String ist eine feine sache!bye


Anmelden zum Antworten