formatowane wyjscie printf()


printf.c

Opis jest w trakcie tworzenia :) Będą tu niebawem fragmenty kodu z wyjaśnieniem (printf, sprintf, fprintf, powołanie typy zmiennych). Proponuję jednak poznać najpierw zmienne (ich rodzaje, zastosowania) a później powrócić do formatowania wyjścia. Chociaż jedno wiąże się z drugim.. i ciężko podać przykłady zmiennych nie powołując się na formatowania w printf() :)

Od czegoś trzeba zacząć..

    int main (void)
    {
	int a = 5;
	printf("a = %.. hmmm..", a);
	/*co by tu dać, aby wyświetliło się 5.. Hmm :) */
	return 0;
    }
Opis tego, co możecie wstawić za znak % i dlaczego znajdziecie na tej stronie już niebawem :) A narazie sucha teoria :P

Konwersje całkowite

%d - Standardowy kod konwersji dla liczby całkowitej ze znakiem (int). Jeśli wartość jest ujemna, automatycznie będzie dodany znak minus. [1]

%u - Argument typu unsigned int ma być wydrukowany w formie dziesiętnej. [1]

%o - Argument jest liczbą całkowitą i ma być wydrukowany w formie ósemkowej bez znaku. [1]

%x - Argument jest liczbą całkowitą i ma być wydrukowany w formie szesnastkowej bez znaku. Dla dodatkowych cyfr szesnastkowych będą używane litery a, b, c, d, e, f. Jeśli w zamian podana zostanie specyfikacja %X, wtedy dodatkowymi cyframi szesnastkowymi będą A, B, C, D, E, F. [1]



%ld - Argument jest liczbą całkowitą ze znakiem, typu long, która będzie wydrukowana w formie dziesiętnej. Programista może też używać %lo, %lu, %lx, %lX. [1]



Konwersje zmiennoprzecinkowe

%f - Argument jest typu float lub double i ma być wydrukowany w standardowej dziesiętnej formie zmiennoprzecinkowej. [1]

%e - Argument jest typu float lub double i ma być wydrukowany w formie wykładniczej, przyjętej w zastosowaniach naukowych. Do oznaczenia potęgi będzie użyta litera e. Jeśli w zamian podany jest specyfikator %E, zamiast niej będzie użyta wielka litera E. [1]

%g - Jest to mieszanina specyfikacji %e i %f. Wskazuje, że argument jest zgodny z float lub double. W zależności od wielkości liczby będzie użyta notacja zmiennoprzecinkowa lub wykładnicza (jak dla %e). Jeśli w zamian podany jest specyfikator %G, w noracji wykładniczej będzie użyty styl %E. [1]



Znaki i stringi

%c - Argument jest typu char i ma być wydrukowany dokładnie taki, jak jest, nawet jeśli to znak niedrukowalny. Wartość liczbowa zawarta w znaku może być wyświetlona za pomocą kodu konwersji całkowitej. Jest to przydatne, jeśli znak nie ma znaczącej reprezentacji na twoim terminalu. [1]

%s - Odpowiadającyu argument jest traktowany jako napis (to znaczy wskaźnik znakowy). Zawartość tego napisu będzie przekazywana dosłownie do wyjścia strumienia. Oczywiście napis musi być zakończony znakiem zerowym. [1]



Neutrinka
www.kwant.info

Literatura: K. Haviland, D. Gray, B. Salama; UNIX programowanie systemowe; Addison Wesley; 1999.