C/printf: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m →Rozszerzenia GNU: kilka razy |
Nie podano opisu zmian |
||
Linia 31:
====size====
Konwersja
"%d", 100
spowoduje zapisanie
[ 1 | 0 | 0 | \0 ]
4 znaków do tablicy
* 3 znaków liczby całkowitej
* znaku końca łańcucha (
Jeśli
* rozmiar tablicy str jest <4 ale argument size jest >=4 to powstaje niezdefiniowanie zachowanie (ang. undefined behavior)
* rozmiar tablicy str >=4 but ale argument size jest <4, to nie powstaje niezdefiniowanie zachowanie ale łańcuch będzie obcięty (
===Format===
Linia 129:
===Przykład użycia===
▲====pierwszy====
<source lang="c">
#include <stdio.h>
Linia 145 ⟶ 144:
i = 4
f = 3.1
<!-------
--------- co ten kod ma ukazywać?
Linia 202 ⟶ 201:
------->
====Konwersja ====
Konwersja 1 liczby typu double na łańcuch
<source lang=c>
/*
Linia 226 ⟶ 225:
</source>
▲Konwersja 2 liczb typu double na łańcuch :
/*
http://stackoverflow.com/questions/7228438/convert-double-float-to-string
http://linux.die.net/man/3/snprintf
Linia 241 ⟶ 234:
where the number of digits after the decimal-point character is equal to the precision specification.
If the precision is missing, it is taken as 6;
The precision
Linia 248 ⟶ 240:
#include <stdio.h>
{
/* And remember to allow space for :
Linia 282 ⟶ 269:
</source>
Wynik działania
<pre>
d = -1.123457,-2.123457
good size of string is = 19 and now true size is = 20
</pre>
====Liczby całkowite====
<source lang
/*
gcc l.c -lm -Wall
./a.out
http://stackoverflow.com/questions/29592898/do-long-long-and-long-have-same-range-in-c-in-64-bit-machine
Linia 306 ⟶ 289:
#include <limits.h> // INT_MAX, http://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html
{
double lMax;▼
▲int main(){
▲double lMax;
lMax = log2(INT_MAX);
Linia 334 ⟶ 312:
printf("ULLONG_MAX \t= %25llu ; lMax = log2(ULLONG_MAX) \t= %.0f \n",ULLONG_MAX, lMax);
return 0;▼
▲return 0;
}
Linia 345 ⟶ 319:
</source>
Wynik
<pre>
Linia 353 ⟶ 327:
ULONG_MAX = 18446744073709551615 ; lMax = log2(ULONG_MAX) = 64
LLONG_MAX = 9223372036854775807 ; lMax = log2(LLONG_MAX) = 63
ULLONG_MAX = 18446744073709551615 ; lMax = log2(ULLONG_MAX) = 64
</pre>
Linia 407 ⟶ 380:
</source>
Kiedy chcemy kilka zapisać do tej samej zmiennej to używamy jej jednocześnie jako wyjścia i wejścia
asprintf(&tmp, "%s %f,%f ", tmp, zx , -zy );
Linia 415 ⟶ 388:
:[[C/Podstawowe procedury wejścia i wyjścia|Podstawowe procedury wejścia i wyjścia]]
:[[C/Napisy#Znaki_specjalne|Znaki specjalne]]
===Źródła===
<references/>
|