🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.c
19 messages
19 total messages Started by Maciej MOCHOL Tue, 03 Feb 1998 17:52
sprintf() pytanie
#1179
Author: Maciej MOCHOL
Date: Tue, 03 Feb 1998 17:52
22 lines
1219 bytes

Witam

Mam pytanko. Czy w C++ powinienem uzywac sprintf() ? Ze printf()
sie nie uzywa to wiem. Wiem tez ze jest odpowiednik sprintfa w
iostream.h - to znaczy jest strumien ktory sobie moge zwiazac z
stringiem. Ja jednak lubie sprintf(), ale nie wiem czy powinienem 
go uzywac, bo - jak slyszalem - biblioteka iostream gryzie sie nieco
z tymi z ANSI C, polega to na jakims buforowaniu, czy cos. Ktos moze
wie cos wiecej na ten temat ?


pozdrawiam
c.

-------------------------------------.
Codematic                            |            
 code@beta.cku.pwr.wroc.pl           |
 mmochol@elka.pw.edu.pl              |
http://home.elka.pw.edu.pl/~mmochol  |
-------------------------------------'
Re: sprintf() pytanie
#1180
Author: Grzegorz Aniol
Date: Tue, 03 Feb 1998 18:27
7 lines
1144 bytes
Nie wiem co sie z czym gryzie, ale czesto sprintf'a uzywam (glownie z
przyzwyczajenia) i zawsze jakos dziala.
-- 
---------------------------------------------------------------------
   -= A N G E L =-              email:gangel@zeus.polsl.gliwice.pl
 Grzegorz Aniol                 http://zeus.polsl.gliwice.pl/~gangel
---------------------------------------------------------------------
Re: sprintf() pytanie
#1182
Author: Michal Kaczmarczyk
Date: Tue, 03 Feb 1998 20:31
17 lines
1632 bytes
On Tue, 3 Feb 1998, Maciej MOCHOL wrote:

> Mam pytanko. Czy w C++ powinienem uzywac sprintf() ? Ze printf()
> sie nie uzywa to wiem. Wiem tez ze jest odpowiednik sprintfa w
> iostream.h - to znaczy jest strumien ktory sobie moge zwiazac z
> stringiem. Ja jednak lubie sprintf(), ale nie wiem czy powinienem 
> go uzywac, bo - jak slyszalem - biblioteka iostream gryzie sie nieco
> z tymi z ANSI C, polega to na jakims buforowaniu, czy cos. Ktos moze
> wie cos wiecej na ten temat ?

Gryźć się może jedynie wtedy gdy różnymi metodami zapisuje się ten sam
plik (np. stdout). Jeśli chodzi o sprintf i ostrstream to nie powinny się
kłócić o ile nie będziemy robić czegoś równocześnie na tym samym
stringu/buforze. 

_______________________________________________________________________________
Michał Kaczmarczyk  mailto:mik@iname.com http://student.uci.agh.edu.pl/~kaczmar
Re: sprintf() pytanie
#1181
Author: Krzysztof G. Baranowski
Date: Tue, 03 Feb 1998 20:59
10 lines
1225 bytes
While testing the million monkey theory, Grzegorz Aniol wrote:
>Nie wiem co sie z czym gryzie, ale czesto sprintf'a uzywam (glownie z
>przyzwyczajenia) i zawsze jakos dziala.
Ja bym radzil snprintf() uzywac.

Kris
-- 
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Smith & Wesson - The original point and click interface..."
http://www.knm.org.pl/              <prezes@manjak.knm.org.pl>
Re: sprintf() pytanie
#1183
Author: Michal Malecki
Date: Wed, 04 Feb 1998 20:35
60 lines
2977 bytes
Maciej MOCHOL <mmochol@elka.pw.edu.pl> wrote:


: Witam

: Mam pytanko. Czy w C++ powinienem uzywac sprintf() ? Ze printf()
: sie nie uzywa to wiem.
Cos ci sie chyba pochrzanilo (i nie jestes tu wyjatkiem).
W C++ mozna, jak najbardziej uzywac printf, jezeli sie chce. Tylko
MOZNA uzywac lepszej - bo nie wymuszajacej oznaczania typow parametrow -
konstrukcji "cout << wartosc". Tak wiec to nie jest tak, ze sie NIE
uzywa.

: Wiem tez ze jest odpowiednik sprintfa w
: iostream.h - to znaczy jest strumien ktory sobie moge zwiazac z
: stringiem. 
Polecam strstream.h . Niespecjalnie chwale proby, jakie z tym
przeprowadzilem (ale to bylo dawno temu i to jeszcze na BC 3.1).
Mozesz poeksperymentowac, w BC 3.1 jest wszystko opisane w pomocy
(strstream). 

: Ja jednak lubie sprintf(), ale nie wiem czy powinienem 
: go uzywac, bo - jak slyszalem - biblioteka iostream gryzie sie nieco
: z tymi z ANSI C, polega to na jakims buforowaniu, czy cos. Ktos moze
: wie cos wiecej na ten temat ?
Ja tam nic nie wiem. A sprintf z powodzeniem mozna uzywac w C++.
Jezeli chodzi w buforowanie, to moze wyglada troche inaczej w C++,
ale powiedz mi szczerze: _gdzie_ ty widzisz jakiekolwiek buforowanie
w takim typie danej ? W plikach - owszem. Konsola - owszem. Ale pamiec ?

Poniewaz mam niespecjalnie przyjemne doswiadczenia z strstream, tak tez
raczej zalecam uzywac sprintf, zwlaszcza, ze jesli chodzi o formatowanie
wyglada to troche prosciej:

char buf[180];

sprintf( buf, "%-17s --- %2d.%02d --- %17s\n", beg, il, tl, end );

Niz - odpowiednio w C++:

strstream sout;

sout << setw(17) << setioflags( ios::right ) << beg;
sout << setw(2) << setioflags( ios::left ) << il;
sout << setfill( '0' ) << tl;
sout << setfill( ' ' ) << setw( 17 ) << end << endl;

Nie jestem w 100% pewny, czy dobrze napisalem te manipulatory. Jezeli nie,
niech mnie ktos poprawi. Niestety, nie mam pod reka referencji, bo
u nas nie ma mana do C++ (tak to jest niestety z supportem tego jezyka
na UNIX'ie!).

Pozdrawiam,


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: sprintf() pytanie
#1184
Author: Pawel Kunstman
Date: Mon, 09 Feb 1998 19:40
41 lines
2417 bytes
Michal Malecki wrote in message <6bajen$mgd@polonez.man.lodz.pl>...
>Maciej MOCHOL <mmochol@elka.pw.edu.pl> wrote:
>
>
>: Witam
>
>: Mam pytanko. Czy w C++ powinienem uzywac sprintf() ? Ze printf()
>: sie nie uzywa to wiem.
>Cos ci sie chyba pochrzanilo (i nie jestes tu wyjatkiem).
>W C++ mozna, jak najbardziej uzywac printf, jezeli sie chce. Tylko
>MOZNA uzywac lepszej - bo nie wymuszajacej oznaczania typow parametrow -
>konstrukcji "cout << wartosc". Tak wiec to nie jest tak, ze sie NIE
>uzywa.
>
>: Wiem tez ze jest odpowiednik sprintfa w
>: iostream.h - to znaczy jest strumien ktory sobie moge zwiazac z
>: stringiem.
>Polecam strstream.h . Niespecjalnie chwale proby, jakie z tym
>przeprowadzilem (ale to bylo dawno temu i to jeszcze na BC 3.1).
>Mozesz poeksperymentowac, w BC 3.1 jest wszystko opisane w pomocy
>(strstream).

CIACH


Calkowicie sie zgadzam - uzywaj sprintf() do woli. Dodam tylko, ze jezeli
uzywasz MFC, to jest tam - moim zdaniem swietna - klasa CString. Metoda
Format() ma skladnie taka sama jak sprintf(), tyle ze nie musisz sie martwic
o rozmiar bufora itp. (chyba ze twoja aplikacja jest real-time, gdzie musisz
dbac o wyeliminowanie wszelkich mozliwych nie koniecznych kopiowan itp.,
ktore moga negatywnie wplynac na szybkosc wykonywania programu). Jesli
chodzi o biblioteke strstream, to moim zdaniem to zawracanie glowy -
niewygodne, trzeba sie opisac i trudno zrobic formatowanie parametryczne
(tzn. ze format trzymasz np. w pliku zewnetrznym lub resource'ach aby
uniknac rekompilacji przy zmianie formatu). Ale kazdy ma swoje preferencje.

Pawel

---------------------------------
Pawel Kunstman
e-mail: pawelk@melita.com
Re: sprintf() pytanie
#1185
Author: Krzysztof G. Baranowski
Date: Mon, 09 Feb 1998 21:21
13 lines
1375 bytes
While testing the million monkey theory, Pawel Kunstman wrote:
>Calkowicie sie zgadzam - uzywaj sprintf() do woli. Dodam tylko, ze jezeli
Opamietajcie sie, zanim bedzie za pozno ! Jezeli juz to powinno sie
uzywac snprintf().  

sprintf() nie istnieje, nie ma takiej fukncji... co to jest sprintf ?
;-))

Kris
-- 
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Smith & Wesson - The original point and click interface..."
http://www.knm.org.pl/              <prezes@manjak.knm.org.pl>
Re: sprintf() pytanie
#1186
Author: Jakub Klausa
Date: Tue, 10 Feb 1998 13:18
34 lines
1913 bytes
Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> wrote:
> While testing the million monkey theory, Pawel Kunstman wrote:
>>Calkowicie sie zgadzam - uzywaj sprintf() do woli. Dodam tylko, ze jezeli
> Opamietajcie sie, zanim bedzie za pozno ! Jezeli juz to powinno sie
> uzywac snprintf().  

> sprintf() nie istnieje, nie ma takiej fukncji... co to jest sprintf ?
> ;-))

> Kris
> -- 
> Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
> "Smith & Wesson - The original point and click interface..."
> http://www.knm.org.pl/              <prezes@manjak.knm.org.pl>


bofh:jacke:~> man sprintf
PRINTF(3)           Linux Programmer's Manual           PRINTF(3)

NAME
       printf,  fprintf,  sprintf,  snprintf,  vprintf, vfprintf,
       vsprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #include <stdio.h>

[ciach]


Kuba
-- 
 [=-=] Jakub Klausa; e-mail:jacke@tpsa.is.lame.org,jacke@nask.is.lame.org [=-=]
 [=-=] Jacke @ IRC; Wroclaw, POLAND;   http://serek.netclub.org.pl/~jacke [=-=]
                       * Forget the e-mail, get a female * 
Re: sprintf() pytanie
#1187
Author: Krzysztof G. Baranowski
Date: Tue, 10 Feb 1998 14:40
19 lines
1871 bytes
While testing the million monkey theory, Jakub Klausa wrote:
>Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> wrote:
>> While testing the million monkey theory, Pawel Kunstman wrote:
>>>Calkowicie sie zgadzam - uzywaj sprintf() do woli. Dodam tylko, ze jezeli
>> Opamietajcie sie, zanim bedzie za pozno ! Jezeli juz to powinno sie
>> uzywac snprintf().  
>> sprintf() nie istnieje, nie ma takiej fukncji... co to jest sprintf ?
>> ;-))
>bofh:jacke:~> man sprintf
>PRINTF(3)           Linux Programmer's Manual           PRINTF(3)
Nie zauwazyles smileya ? Chodzilo mi o to, ze powinno sie raczej
uzywac snprintf() zamiast sprintf(), ktory nie sprawdza dlugosci
bufora. Efekty tego chyba wszyscy dobrze znamy.

Kris
-- 
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Smith & Wesson - The original point and click interface..."
http://www.knm.org.pl/              <prezes@manjak.knm.org.pl>
Re: sprintf() pytanie
#1188
Author: Michal Malecki
Date: Tue, 10 Feb 1998 18:45
25 lines
1855 bytes
Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> wrote:
: While testing the million monkey theory, Jakub Klausa wrote:
:>Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> wrote:
:>> Opamietajcie sie, zanim bedzie za pozno ! Jezeli juz to powinno sie
:>> uzywac snprintf().  
:>> sprintf() nie istnieje, nie ma takiej fukncji... co to jest sprintf ?
:>> ;-))
:>bofh:jacke:~> man sprintf
:>PRINTF(3)           Linux Programmer's Manual           PRINTF(3)
: Nie zauwazyles smileya ? Chodzilo mi o to, ze powinno sie raczej
: uzywac snprintf() zamiast sprintf(), ktory nie sprawdza dlugosci
: bufora. Efekty tego chyba wszyscy dobrze znamy.

24818.zly:~/C> man snprintf
No manual entry for snprintf.

I co ty na to ?
Funkcja bylaby dobra, gdyby byla.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: sprintf() pytanie
#1189
Author: Qrczak
Date: Tue, 10 Feb 1998 19:08
38 lines
1828 bytes
On 10 Feb 1998, Michal Malecki wrote:

> 24818.zly:~/C> man snprintf
> No manual entry for snprintf.
> 
> I co ty na to ?
> Funkcja bylaby dobra, gdyby byla.

[qrczak ~]$ man -c snprintf
Formatting page, please wait...

SNPRINTF(3)         Linux Programmer's Manual         SNPRINTF(3)

NAME
       snprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #define _GNU_SOURCE
       #include <stdio.h>

       int snprintf ( char *str, size_t n,
                                const char *format, ... );

       #include <stdarg.h>

       int vsnprintf ( char *str, size_t n,
                                const char *format, va_list ap );

DESCRIPTION
[...]

(nie wiem, czy to jest w jakimś standardzie)

-- 
                                 QRCZAK
    __("<              Marcin Kowalczyk
    \__/              qrczak@knm.org.pl
     ^^      http://qrczak.home.ml.org/
Re: sprintf() pytanie
#1190
Author: sektor
Date: Wed, 11 Feb 1998 12:31
44 lines
2263 bytes
W poprzednim odcinku Qrczak <qrczak@knm.org.pl> naskrobal:
: On 10 Feb 1998, Michal Malecki wrote:
:> 24818.zly:~/C> man snprintf
:> No manual entry for snprintf.
:> 
:> I co ty na to ?
:> Funkcja bylaby dobra, gdyby byla.

: [qrczak ~]$ man -c snprintf
: Formatting page, please wait...

: SNPRINTF(3)         Linux Programmer's Manual         SNPRINTF(3)

: NAME
:        snprintf, vsnprintf - formatted output conversion

: SYNOPSIS
:        #define _GNU_SOURCE
:        #include <stdio.h>

:        int snprintf ( char *str, size_t n,
:                                 const char *format, ... );

:        #include <stdarg.h>

:        int vsnprintf ( char *str, size_t n,
:                                 const char *format, va_list ap );

: DESCRIPTION
I wlasnie z tym jest problem. Poza tym...

19811.zly:~/C> man -c snprintf
usage:  man [-] [-adFlrt] [-M path] [-T macro-package ] [ -s section ] name ...
        man [-M path] -k keyword ...
        man [-M path] -f file ...

Czy to jest dyskryminacja Solka ?


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: sprintf() pytanie
#1191
Author: Qrczak
Date: Wed, 11 Feb 1998 13:44
25 lines
1890 bytes
On 11 Feb 1998 sektor@mud.org.pl wrote:

> : [qrczak ~]$ man -c snprintf
> : Formatting page, please wait...
[...]
> 19811.zly:~/C> man -c snprintf
> usage:  man [-] [-adFlrt] [-M path] [-T macro-package ] [ -s section ] name ...
>         man [-M path] -k keyword ...
>         man [-M path] -f file ...

Aaa, to -c było nieważne, zapomniałem wykasować - oznacza:

       -c     Reformat  the  source man page, even when an up-to-
              date cat page exists.  This can  be  meaningful  if
              the cat page was formatted for a screen with a dif-
              ferent number of columns.

i użyłem go tylko po to, żeby móc zrzucić z ekranu tekst "Formatting
page, please wait..." :-)

-- 
                                 QRCZAK
    __("<              Marcin Kowalczyk
    \__/              qrczak@knm.org.pl
     ^^      http://qrczak.home.ml.org/
Re: sprintf() pytanie
#1192
Author: sektor
Date: Wed, 11 Feb 1998 15:21
16 lines
1771 bytes
W poprzednim odcinku Qrczak <qrczak@knm.org.pl> naskrobal:
:        -c     Reformat  the  source man page, even when an up-to-
:               date cat page exists.  This can  be  meaningful  if
:               the cat page was formatted for a screen with a dif-
:               ferent number of columns.

Dziekuje, nie dostarczy mi to jednak snprintf.
Czy to jest funkcja linuxowa, czy istnieje w nowszej wersji gcc ?
A tak dokladnie, to gdzie istnieje jej zapowiedz ?


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: sprintf() pytanie
#1193
Author: Maciej MOCHOL
Date: Wed, 11 Feb 1998 15:46
13 lines
1548 bytes
On 11 Feb 1998 sektor@mud.org.pl wrote:

> Dziekuje, nie dostarczy mi to jednak snprintf.
> Czy to jest funkcja linuxowa, czy istnieje w nowszej wersji gcc ?
> A tak dokladnie, to gdzie istnieje jej zapowiedz ?

U mnie w manie stoi ze to standard i/o function (Solaris/Sparc).

--
Codematic                            
 code@beta.cku.pwr.wroc.pl.strasznie.mi.sie.podobaja
 mmochol@elka.pw.edu.pl.te.smieci.na.koncu.adresu.email
 http://home.elka.pw.edu.pl.i.www.rowniez/~mmochol
Re: sprintf() pytanie
#1194
Author: Qrczak
Date: Wed, 11 Feb 1998 16:31
23 lines
1659 bytes
On 11 Feb 1998 sektor@mud.org.pl wrote:

> Dziekuje, nie dostarczy mi to jednak snprintf.
> Czy to jest funkcja linuxowa, czy istnieje w nowszej wersji gcc ?
> A tak dokladnie, to gdzie istnieje jej zapowiedz ?

NAME
       snprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #define _GNU_SOURCE
       #include <stdio.h>

[...]

CONFORMING TO
       These are GNU extensions.

-- 
                                 QRCZAK
    __("<              Marcin Kowalczyk
    \__/              qrczak@knm.org.pl
     ^^      http://qrczak.home.ml.org/
Re: sprintf() pytanie
#1195
Author: sektor
Date: Thu, 12 Feb 1998 11:33
16 lines
1572 bytes
W poprzednim odcinku Qrczak <qrczak@knm.org.pl> naskrobal:

: CONFORMING TO
:        These are GNU extensions.

Wiec w koncu standard, czy GNU extensions ? U mnie (solek, gcc 2.7.2) tego
nie ma stdio.h .

Czy moze jest to w gcc 2.8.0 ?


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: sprintf() pytanie
#1196
Author: Maciej MOCHOL
Date: Thu, 12 Feb 1998 12:43
21 lines
1755 bytes
On 12 Feb 1998 sektor@mud.org.pl wrote:

> W poprzednim odcinku Qrczak <qrczak@knm.org.pl> naskrobal:
> 
> : CONFORMING TO
> :        These are GNU extensions.
> 
> Wiec w koncu standard, czy GNU extensions ? U mnie (solek, gcc 2.7.2) tego
> nie ma stdio.h .
> 
> Czy moze jest to w gcc 2.8.0 ?

W manie do Solarisa slowem nie ma o GNU Extensions a funkcja jest.
Podejrzewam ze to taki sam standard jak IPC, tyle ze sie jeszcze 
producenci Unixow nie dogadali.

--
Codematic                            
 code@beta.cku.pwr.wroc.pl.strasznie.mi.sie.podobaja
 mmochol@elka.pw.edu.pl.te.smieci.na.koncu.adresu.email
 http://home.elka.pw.edu.pl.i.www.rowniez/~mmochol
Re: sprintf() pytanie
#1197
Author: Qrczak
Date: Thu, 12 Feb 1998 12:43
19 lines
1697 bytes
On 12 Feb 1998 sektor@mud.org.pl wrote:

> : CONFORMING TO
> :        These are GNU extensions.
> 
> Wiec w koncu standard, czy GNU extensions ? U mnie (solek, gcc 2.7.2) tego
> nie ma stdio.h .
> 
> Czy moze jest to w gcc 2.8.0 ?

Wiem tylko tyle, ile zacytowałem (piszą, że GNU extensions). To jest
w RedHacie 4.2 z gcc 2.7.2. Opis pochodzi z pakietu man-pages, a nie
z któregoś gcc. Nie testowałem w praktyce.

-- 
                                 QRCZAK
    __("<              Marcin Kowalczyk
    \__/              qrczak@knm.org.pl
     ^^      http://qrczak.home.ml.org/
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