Thread View: de.comp.lang.c++
6 messages
6 total messages
Started by Gernot Schwed
Wed, 27 Dec 1995 20:18
Noch 'ne dumme Frage...
Author: Gernot Schwed
Date: Wed, 27 Dec 1995 20:18
Date: Wed, 27 Dec 1995 20:18
89 lines
2073 bytes
2073 bytes
Hi!
Das Proggi soll in einer Datei einen Text / String ersetzen.
Doch der Abbruch erfolgt direkt nach:
printf ("\nBitte Suchstring eingeben :");
scanf ("%i",&string1);
Hat jemand eine Idee oder zufaellig eine Funktion, die sowas macht.
Eigentlich braeuchte ich eine Funktion die untersucht, ob ein String
in einer Datei enthalten ist. Aber ich denke ich kann mir das basteln,
wenn das andere funktioniert.
DANKE!
Gernot
---------------------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <stdlib.h>
char searchtext[]="&string1";
char storedummy[]="&string2";
void read_head(FILE *file)
{
int i;
for(i=0; i<strlen(searchtext); i++) storedummy[i]=fgetc(file);
}
void shift_and_read(FILE *file)
{
int i;
char *dummy = (char *)malloc(strlen(searchtext));
for(i=1; i< strlen(searchtext); i++)
dummy[i-1]=storedummy[i];
dummy[strlen(searchtext)-1]=fgetc(file);
strcpy(storedummy,dummy);
}
main()
{
int string1;
int string2;
printf ("\nBitte Suchstring eingeben :");
scanf ("%i",&string1);
printf ("\nBitte Ersatz eingeben :");
scanf ("%i",&string2);
FILE *infile, *outfile;
infile=fopen("test.txt","rb");
outfile=fopen("test.new","w");
if(!outfile ||!infile) return(1);
read_head(infile);
while(!feof(infile))
{
if(!strcmp(storedummy, searchtext))
{
printf("\nFound %s !",searchtext);
exit(0);
}
shift_and_read(infile);
}
printf("\nNot found!");
fclose(infile);
fclose(outfile);
exit(0);
}
http://stud.uni-sb.de/~gescw/
Re: Noch 'ne dumme Frage...
Author: Watson
Date: Thu, 28 Dec 1995 15:32
Date: Thu, 28 Dec 1995 15:32
18 lines
1022 bytes
1022 bytes
Gernot Schwed wrote:
> printf ("\nBitte Suchstring eingeben :");
> scanf ("%i",&string1);
Versuchs mal mit
scanf("%d",&string1);
Ansonsten ist scanf() keine sonderlich portable Funktion.
Besser gets(), fgets() und anschliessende Konvertierung
mittels atol(), atoi() o.s.Ae., was Du ja durch den Identifier
'string1' fuer einen int-value bereits bestens vorbereitet
hast :-)
--
* Greetinx,
Watson (sayegh@fokus.gmd.de)
http://www.fokus.gmd.de/ovma/employees/sayegh/entry.html
Re: Noch 'ne dumme Frage...
Author: Kurt Watzka
Date: Thu, 28 Dec 1995 18:08
Date: Thu, 28 Dec 1995 18:08
38 lines
1643 bytes
1643 bytes
Watson <sayegh@fokus.gmd.de> writes:
>Gernot Schwed wrote:
>> printf ("\nBitte Suchstring eingeben :");
>> scanf ("%i",&string1);
>Versuchs mal mit
>scanf("%d",&string1);
Wenn "sting1" ein Integer ist, hat die Variable einen sehr ungewoehnlichen
Namen, andernfalls ist der Formatstring natuerlich genauso falsch wie
"%i".
Nachdem "string1" aber ein int ist, bewirkt der andere Formatstring lediglich
einige (nicht fuer jeden intuitive) zusaetzliche Konversionen.
>Ansonsten ist scanf() keine sonderlich portable Funktion.
Aber nein, im Gegenteil, scanf() ist eine Funktion der Standardbibliothek,
also geht es gar nicht portabler. Allerdings ist scanf() keine besonders
_stabile_ Funktion, d.h. sie sollte nicht direkt mit Benutzern in Kontakt
kommen.
>Besser gets(), fgets() und anschliessende Konvertierung
>mittels atol(), atoi() o.s.Ae., was Du ja durch den Identifier
>'string1' fuer einen int-value bereits bestens vorbereitet
>hast :-)
Oder mit iostreams, wenn das ganze sich schon in de.comp.lang.c++
abspielt.
Kurt
--
| Kurt Watzka Phone : +49-89-2180-6254
| watzka@stat.uni-muenchen.de
| ua302aa@sunmail.lrz-muenchen.de
Re: Noch 'ne dumme Frage...
Author: Martin Prange
Date: Thu, 04 Jan 1996 14:20
Date: Thu, 04 Jan 1996 14:20
50 lines
2429 bytes
2429 bytes
In article <4bume1$ph@sparcserver.lrz-muenchen.de> ua302aa@sun2.lrz-muenchen.de (Kurt Watzka) writes:
Watson <sayegh@fokus.gmd.de> writes:
>Gernot Schwed wrote:
>> printf ("\nBitte Suchstring eingeben :");
>> scanf ("%i",&string1);
>Versuchs mal mit
>scanf("%d",&string1);
[deleted...]
>Ansonsten ist scanf() keine sonderlich portable Funktion.
Aber nein, im Gegenteil, scanf() ist eine Funktion der Standardbibliothek,
also geht es gar nicht portabler. Allerdings ist scanf() keine besonders
_stabile_ Funktion, d.h. sie sollte nicht direkt mit Benutzern in Kontakt
kommen.
>Besser gets(), fgets() und anschliessende Konvertierung
>mittels atol(), atoi() o.s.Ae., was Du ja durch den Identifier
>'string1' fuer einen int-value bereits bestens vorbereitet
>hast :-)
Nun macht aber mal halblang.
Denkt hier noch jemand an die uerspruengliche Frage des Posters ?
IMHO sollte der ehrenwerte Suchstring-ersetzende Programmierer sich
mit den (erweiterten) regex - Quellen auseinandersetzen.
Dies ist zwar Arbeit fuer nicht-Regex-Experten, hat aber die
entscheidenden Vorteile, dass
1. das Suchen kinderleicht ist
2. man Wortgrenzen beruecksichtigen kann
( bsp: int XX::bla() -> int YY::bla() )
3. das Ersetzen durch die register auch schon so gut wie auskodiert (!) ist.
Also: Quellen besorgen und sorgfaeltig der header lesen !
NOTE: Die nihcl-library enthaelt, genausowie die g++-lib, eine C++
Klasse dafuer !!!
__
Martin Prange (prange@cs.tu-berlin.de) ////////////////////////////////////////
Member of the ALMAP Team at Alcatel SEL Berlin //// Home: +49 30 7848958 //////
//// Work: +49 30 7002 - 0 (OP) /
Re: Noch 'ne dumme Frage...
Author: Gernot Schwed
Date: Fri, 05 Jan 1996 01:39
Date: Fri, 05 Jan 1996 01:39
25 lines
1168 bytes
1168 bytes
Aeh, >Dies ist zwar Arbeit fuer nicht-Regex-Experten, hat aber die >entscheidenden Vorteile, dass >1. das Suchen kinderleicht ist >2. man Wortgrenzen beruecksichtigen kann > ( bsp: int XX::bla() -> int YY::bla() ) >3. das Ersetzen durch die register auch schon so gut wie auskodiert (!) ist. Hoert sich wirklich gut an, aber ich hab' leider nix bei Borland darueber gefunden... >Also: Quellen besorgen und sorgfaeltig der header lesen ! Hast du eine Idee wo?!? >NOTE: Die nihcl-library enthaelt, genausowie die g++-lib, eine C++ >Klasse dafuer !!! auch darueber no Infos in meinenm Compiler... DANKE! Gernot http://stud.uni-sb.de/~gescw/
Re: Noch 'ne dumme Frage...
Author: Martin Prange
Date: Tue, 09 Jan 1996 15:32
Date: Tue, 09 Jan 1996 15:32
31 lines
1860 bytes
1860 bytes
In article <4chvjl$ul6@bellona.wg.saar.de> gescw@stud.uni-sb.de (Gernot Schwed) writes:
Path: cs.tu-berlin.de!zib-berlin.de!irz401!news1.urz.tu-dresden.de!news.dfn.de!scsing.switch.ch!blackbush.xlink.net!hades.rz.uni-sb.de!wg.saar.de!news
>Dies ist zwar Arbeit fuer nicht-Regex-Experten, hat aber die
>entscheidenden Vorteile, dass
>1. das Suchen kinderleicht ist
>2. man Wortgrenzen beruecksichtigen kann
> ( bsp: int XX::bla() -> int YY::bla() )
>3. das Ersetzen durch die register auch schon so gut wie auskodiert (!) ist.
Hoert sich wirklich gut an, aber ich hab' leider nix bei Borland
darueber gefunden...
>Also: Quellen besorgen und sorgfaeltig der header lesen !
Hast du eine Idee wo?!?
>NOTE: Die nihcl-library enthaelt, genausowie die g++-lib, eine C++
>Klasse dafuer !!!
auch darueber no Infos in meinenm Compiler...
archie -s nihcl
archie -s regex
__
Martin Prange (prange@cs.tu-berlin.de) ////////////////////////////////////////
Member of the ALMAP Team at Alcatel SEL Berlin //// Home: +49 30 7848958 //////
//// Work: +49 30 7002 - 0 (OP) /
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads