Ich möchte ein Programm, dass mir alle Kleinbuchstaben einer Textdatei zu Grossbuchstaben macht.
Hab nix bei google gefunden, mich also selbst rangesetzt. Soweit klappt alles ganz gut, nur schreibt mir mein proggi die Geänderten Buchstaben nicht wieder auf die alte Stelle sondern an das Ende der Textdatei. Wieso mein fseek beim zweiten nutzen nicht funktioniert, ist mir völlig unklar.
Hier di Source:
#include
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Da hat mich irgendein scripting reingelegt...
cout do (geschweift auf)
fseek(text,z*sizeof(a),SEEK_SET);
fread(&a,sizeof(a),1,text);
if (a>97 && a (geschweift auf)a=a-32;
cout fseek(text,z*sizeof(a),SEEK_SET);
fwrite(&a,sizeof(a),1,text);
(geschweift zu)
z++;
(geschweift zu)while(z
Da hat mich irgendein scripting reingelegt...
Nicht ganz, sondern einfaches HTML. Dort werden nämlich steuerbefehle in spitze klammern gepackt, d.h. die kleiner/größer zeichen.
Damit du nicht nochmal hereingelegt wirst, musst du alle "<" durch "<" ersetzen, sowie alle führenden leerzeichen durch " ".
Damit es noch besser aussieht, das ganze in ein "<tt>...</tt>" packen.
mr.escape
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
FILE *text;
int main()
{
char a;
long z;
long siz;
z=0;
text=fopen("text.txt","a+");
fseek(text,0,SEEK_END);
siz=ftell(text)/sizeof(a);
cout<<siz;
do{
fseek(text,z*sizeof(a),SEEK_SET);
fread(&a,sizeof(a),1,text);
if (a>97 && a<123)
{a=a-32;
cout<<a;
fseek(text,z*sizeof(a),SEEK_SET);
fwrite(&a,sizeof(a),1,text);
}
z++;
}while(z<siz);
fclose(text);
system("PAUSE");
return 0;
}
Nicht ganz, sondern einfaches HTML. Dort werden nämlich steuerbefehle in spitze klammern gepackt, d.h. die kleiner/größer zeichen.
Damit du nicht nochmal hereingelegt wirst, musst du alle "<" durch "<" ersetzen, sowie alle führenden leerzeichen durch " ".
Damit es noch besser aussieht, das ganze in ein "<tt>...</tt>" packen.
mr.escape
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
FILE *text;
int main()
{
char a;
long z;
long siz;
z=0;
text=fopen("text.txt","a+");
fseek(text,0,SEEK_END);
siz=ftell(text)/sizeof(a);
cout<<siz;
do{
fseek(text,z*sizeof(a),SEEK_SET);
fread(&a,sizeof(a),1,text);
if (a>97 && a<123)
{a=a-32;
cout<<a;
fseek(text,z*sizeof(a),SEEK_SET);
fwrite(&a,sizeof(a),1,text);
}
z++;
}while(z<siz);
fclose(text);
system("PAUSE");
return 0;
}
Soweit klappt alles ganz gut, nur schreibt mir mein proggi die Geänderten Buchstaben nicht wieder auf die alte Stelle sondern an das Ende der Textdatei.Dürfte damit zusammenhängen, daß Du die Datei im Modus append (anhängen) geöffnet hast fopen("text.txt","a+"); Für das was Du vorhast müsste die Datei so geöffnet werden, daß ein wahlfreier Zugriff möglich ist (schreiben an beliebige Position)...
Gruß
Borlander
Gruß
Borlander
Ja ! sowas dummes...
r+ wär der richtige modus gewesen
Danke, Borlander !