Googlehupf
Erfahrenes Mitglied
Hallo,
ich hab ein Problem.
Aufgabenstellung etc. steht im Code als Comment.
Nur wenn ich bei "count_lines" schon bis zum Ende der Datei gehe.
Darum wird die while bei search_hash nicht berücksichtig, richtig?
Kann man das net irgenwie resetten?
MfG Googlehupf
ich hab ein Problem.
Aufgabenstellung etc. steht im Code als Comment.
Nur wenn ich bei "count_lines" schon bis zum Ende der Datei gehe.
Darum wird die while bei search_hash nicht berücksichtig, richtig?
Kann man das net irgenwie resetten?
C++:
/*Aufgabe:
Schreiben Sie zwei Unterprogramme:
a) Ein Unterprogramm um die Zeilen in einem File zu zählen und ans
Hautptprogramm zurueck zugeben.
b) Ein Unterprogramm um die Zeilen im File durchzusuchen und alle Zeilen die
mit einem # beginnen in ein neues File.
zu schreiben.
*/
#include <stdio.h>
#define MAX_LEN 100
int count_lines(FILE* text, FILE* erg);
void search_hash(FILE* text, FILE* erg);
int count_lines(FILE* text, FILE* erg)
{
int anz=0;
char a[MAX_LEN];
while(!feof(text))
{
fgets(a,MAX_LEN,text);
anz++;
}
return(anz);
}
void search_hash(FILE* text, FILE* erg)
{
char b[MAX_LEN];
while(!feof(text))
{
fgets(b,MAX_LEN,text);
if(b[0] == '#')
{
fprintf(erg,"%s",b);
}
}
}
int main()
{
FILE*text=NULL;
FILE*erg=NULL;
int anz=0;
text=fopen("text.txt","r");
if(text == NULL)
{
printf("fehler beim lesen(text.txt)");
exit(-1);
}
anz=count_lines(text,erg);
erg=fopen("erg.txt","w");
if(erg == NULL)
{
printf("fehler beim schreiben(erg.txt)");
exit(-1);
}
search_hash(text,erg);
fclose(text);
fclose(erg);
return(0);
}
MfG Googlehupf