Hilfe qullcode funzt net C-sprache



  • ry hab vergessen das ich totaler anfänger bin

    bei dem programm wurde mir auch geholfen



  • Okay und wo ist deinen main funktion



  • so aber dann erkennt er immer noch net die search function und auch net die replace symbol

    int main()

    {

    search_function();
    getchar();

    }

    int search_function()
    {
    FILE *fp,*datei;

    char text[255];
    char suchwort[2][20]={"NETZ","FID"};
    int AnzahlSuchwoerter=2;
    char* ptr;
    int i;
    char *teilstring;
    search_function();
    getchar();

    fp = fopen ("d:\\test.cfg","rt");

    if (fp==NULL)
    {
    printf("Fehlen von diso_b_text.ini\r\n");

    }
    else
    { datei = fopen ("d:\\textdateineu.txt","wa+");// erstellt die Datei "textdateineu.txt"

    //laed eine zeile der datei in die zeichenfolge "text". Ende ist entweder ein Newline Zeichen, Dateiende oder maximal 255 Zeichen
    //Im Fehlerfall wrid ein NULL zeiger zurückgeliefert
    while ( NULL!=fgets(text,255, fp))
    {

    for (i=0; i<=AnzahlSuchwoerter; i++)// zählt AnzahlSuchwoerter und addiert immer bei durchlaufen der Schleife 1 dazu
    {
    ptr = strstr (text,suchwort[i]); //sucht nach dem Vorkommen des in suchwort[i] gespeicherten wortens in dem "text" String
    if ( ptr != NULL )
    {
    replace_symbol(text); //hier wird die replace funktion aufgerufen, welche ein bestimmtes zeichen im text String ersetzen
    printf("%s\r\n",text);
    fputs (text,datei);// schreibt den gesuchten Text in die neue Datei
    break;
    }
    }

    }
    fclose (datei);
    }

    }
    int replace_symbol(char text[255])
    {

    char *teilstring;

    while((teilstring = strstr (text, ","))!=NULL)
    {
    *teilstring = ';'; //dereferenzieren des teilstrings und zuweisen des entsprechenden zeichen
    }
    return 0;

    }



  • Naja, wenn du die Hinweise nicht befolgst, wird das auch nichts. Simon.gysi hat eigentlich alles Wichtige gesagt.



  • naja ist nicht so einfach

    ich mach gerade praktikum also hab sehr sehr wenig erfahrung sprich 1 woche lesen. also ist es schwer sowas umzusetzten



  • int search_function();
    int replace_symbol(char text[255]);
    int main()
    
    {
    
    search_function();
    getchar();
    
    }
    
    int search_function()
    {
    FILE *fp,*datei;
    
    char text[255];
    char suchwort[2][20]={"NETZ","FID"};
    int AnzahlSuchwoerter=2;
    char* ptr;
    int i;
    char *teilstring;
    search_function();
    getchar();
    
    fp = fopen ("d:\\test.cfg","rt");
    
    if (fp==NULL)
    {
    printf("Fehlen von diso_b_text.ini\r\n");
    
    }
    else
    { datei = fopen ("d:\\textdateineu.txt","wa+");// erstellt die Datei "textdateineu.txt"
    
    //laed eine zeile der datei in die zeichenfolge "text". Ende ist entweder ein Newline Zeichen, Dateiende oder maximal 255 Zeichen
    //Im Fehlerfall wrid ein NULL zeiger zurückgeliefert
    while ( NULL!=fgets(text,255, fp))
    {
    
    for (i=0; i<=AnzahlSuchwoerter; i++)// zählt AnzahlSuchwoerter und addiert immer bei durchlaufen der Schleife 1 dazu
    {
    ptr = strstr (text,suchwort[i]); //sucht nach dem Vorkommen des in suchwort[i] gespeicherten wortens in dem "text" String
    if ( ptr != NULL )
    {
    replace_symbol(text); //hier wird die replace funktion aufgerufen, welche ein bestimmtes zeichen im text String ersetzen
    printf("%s\r\n",text);
    fputs (text,datei);// schreibt den gesuchten Text in die neue Datei
    break;
    }
    }
    
    }
    fclose (datei);
    }
    
    }
    int replace_symbol(char text[255])
    {
    
    char *teilstring;
    
    while((teilstring = strstr (text, ","))!=NULL)
    {
    *teilstring = ';'; //dereferenzieren des teilstrings und zuweisen des entsprechenden zeichen
    }
    return 0;
    
    }
    


  • erstmal vielen dank

    doch nun bkeomm cih

    int main()
    int search_function() does not return a value

    sry wenn cih mich so dumm anstell



  • Zum voherigen Problem:
    Du kannst auch die main ans ende der datei setzen, aber so ist's eleganter.

    Das neue Problem:
    Du hast bei deiner Funktion den Rückgabetyp als Integer deklariert, also muss die Funktion auf jeden Fall einen int Datentyp zurückgeben.
    Wenn die Funktion nicht's zurückgeben soll, ersetz' das int mit void.

    Nicht verzweifeln, aller Anfang ist schwierig, bis man mal die Grundlagen kennt.

    Informier dich am besten in Tutorials über Rückgabetypen und generell über C Programmierung.



  • so oder?

    aber wieso kommt dann too much functions in this module?

    void search_function();
    int replace_symbol(char text[255]);

    void main()

    {

    search_function();
    getchar();

    }

    void search_function()

    {
    FILE *fp,*datei;

    char text[255];
    char suchwort[2][20]={"benni","hallo"};
    int AnzahlSuchwoerter=2;
    char* ptr;
    int i;
    char *teilstring;
    search_function();
    getchar();

    fp = fopen ("d:\\test.cfg","rt");

    if (fp==NULL)
    {
    printf("Fehlen von diso_b_text.ini\r\n");

    }
    else
    { datei = fopen ("d:\\textdateineu.txt","wa+");// erstellt die Datei "textdateineu.txt"

    //laed eine zeile der datei in die zeichenfolge "text". Ende ist entweder ein Newline Zeichen, Dateiende oder maximal 255 Zeichen
    //Im Fehlerfall wrid ein NULL zeiger zurückgeliefert
    while ( NULL!=fgets(text,255, fp))
    {

    for (i=0; i<=AnzahlSuchwoerter; i++)// zählt AnzahlSuchwoerter und addiert immer bei durchlaufen der Schleife 1 dazu
    {
    ptr = strstr (text,suchwort[i]); //sucht nach dem Vorkommen des in suchwort[i] gespeicherten wortens in dem "text" String
    if ( ptr != NULL )
    {
    replace_symbol(text); //hier wird die replace funktion aufgerufen, welche ein bestimmtes zeichen im text String ersetzen
    printf("%s\r\n",text);
    fputs (text,datei);// schreibt den gesuchten Text in die neue Datei
    break;
    }
    }

    }
    fclose (datei);
    }

    }
    int replace_symbol(char text[255])
    {

    char *teilstring;

    while((teilstring = strstr (text, ","))!=NULL)
    {
    *teilstring = ';'; //dereferenzieren des teilstrings und zuweisen des entsprechenden zeichen
    }
    return 0;

    }



  • melley schrieb:

    ...

    void main()
    

    ...

    DAS wiederum ist nicht erlaubt. 😉
    Bei jeder (selbstgeschriebenen) Funktion darfst Du Dir den Rückgabetypen aussuchen ... außer bei main() (kannst Du aber nicht wissen)
    Lösung ist aber recht einfach zu lösen: Einfach eine Zeile hinten dranhängen:

    int main(){
       search_function();
       getchar();
       return 0; // <<<-- Diese Zeile
    }
    

    Noch 2 Bitten:
    - cpp-Tags kosten kein Geld (ist direkt der Button "C/C++" unter Deinem Editfeld) und
    - Bitte weniger "inet-hip-talk"; hier im Forum kommt man mit "net"/"funzt"/.. und Geiz in Sachen Satzzeichen/Recht-/Groß-/Kleinschreibung/... schnell in die "schnorrendes Scriptkiddie"-Schublade.

    Wenn Du Dich daran hältst, bekommst DU mehr/bessere Hilfe.

    Gruß,

    Simon2.



  • void search_function()
    
    {
    FILE *fp,*datei;
    
    char text[255];
    char suchwort[2][20]={"benni","hallo"};
    int AnzahlSuchwoerter=2;
    char* ptr;
    int i;
    char *teilstring;
    search_function();
    getchar();
    
    fp = fopen ("d:\\test.cfg","rt");
    
    if (fp==NULL)
    {
    printf("Fehlen von diso_b_text.ini\r\n");
    
    }
    else
    { datei = fopen ("d:\\textdateineu.txt","wa+");// erstellt die Datei "textdateineu.txt"
    
    //laed eine zeile der datei in die zeichenfolge "text". Ende ist entweder ein Newline Zeichen, Dateiende oder maximal 255 Zeichen
    //Im Fehlerfall wrid ein NULL zeiger zurückgeliefert
    while ( NULL!=fgets(text,255, fp))
    {
    
    for (i=0; i<=AnzahlSuchwoerter; i++)// zählt AnzahlSuchwoerter und addiert immer bei durchlaufen der Schleife 1 dazu
    {
    ptr = strstr (text,suchwort[i]); //sucht nach dem Vorkommen des in suchwort[i] gespeicherten wortens in dem "text" String
    if ( ptr != NULL )
    {
    replace_symbol(text); //hier wird die replace funktion aufgerufen, welche ein bestimmtes zeichen im text String ersetzen
    printf("%s\r\n",text);
    fputs (text,datei);// schreibt den gesuchten Text in die neue Datei
    break;
    }
    }
    
    }
    fclose (datei);
    }
    

    Was ich nicht verstehe warum rufst du

    search_function();
    

    rekursiv auf ?


Anmelden zum Antworten