fscanf problem
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Úterý Květen 30 21:20:07 CEST 2000
On Tue, 30 May 2000 Radek_Sedmak na eurotel.cz wrote:
> asi jsem uplne tupej a tak se zeptam. Kdyz pouziju>
> fscanf(stream,"%[^\n]%*[\n]",buffer) tak mi to nacte jeden radek ze
Misto %*[\n] by IMHO stacilo \n.
> streamu do vystupniho bufferu, ale problem je co kdyz je ve vstupnim
> streamu jenom \n, protoze zapis %[^\n] rika cti dokud neni \n, coz mi
> samozrejme zustane stat na miste v pripade ze vstup je pouze \n.
Ja mam s %[...] takovou zkusenost, ze odmita obecne cist v pripade, ze by
vysledkem byl prazdny retezec (napr. xx nevyhovuje vzorku x%[^x]x). Ja
bych mozna udelal toto
if ((c = getchar()) == '\n')
prazdny_radek();
else {
ungetc(c);
scanf(...);
}
> Proto bych potreboval zapis cti dokud neni \n vcetne onoho \n.
> Netusite nekdo please jak to zapsat do formatovaciho retezce ?
Jestli chcete ten konec radku zapsat i do bufferu, pak asi jedine
nakonec provest neco na zpusob strcat(buffer, "\n").
Nebo v tomto konkretnim pripade rovnou pouzit fgets misto fscanf.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux