Hilfe qullcode funzt net C-sprache
-
hey kann mir jmd helfen?
meine searchfunction und replace function will er net erkennne ka wieso
fehler:
undefined indentigier 'search_function'
undefined indentigier 'replace_symbol'void neue_Funktion ()
{
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;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;}
-
1. Benutze die Code bzw. C/C++ Tags
2. Falsches Forum. Korrekt wäre Ansi C
3. Benutze Forward Dekl. der Funktionen, dann geht mehr.Simon
-
Bitte poste den komplette code
-
des ist der ganze quellcode mehr hab ich net
-
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 valuesry 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 ?