67
FUNKCJA PUTS
(bez przejścia do nowej linii). Na liście argumentów możemy mieszać ze sobą zmienne różnych typów, liczby, napisy itp. w dowolnej liczbie. Funkcja printf przyjmie ich tyle, ile tylko napiszemy. Należy uważać, by nie pomylić się w formatowaniu:
int i ■ 5;
printf("Xi %s y,i", 5, 4, "napis"); /* powinno być: "Xi y,i Xs" */
Przy włączeniu ostrzeżeń (opcja -Wall lub -Wformat w GCC) kompilator powinien nas ostrzec, gdy format nic odpowiada podanym elementom.
Najczęstsze użycie printf():
• printf (Xi, i); gdy i jest typu int: zamiast %i można użyć */,d
• printf ('/.f, i) ; gdy i jest typu float lub double
• printf(%c, i); gdy i jest typu char (i chcemy wydrukować znak)
• printf (*/,s, i); gdy i jest napisem (typu char*)
Funkcja printf() nie jest żadną specjalną konstrukcją języka i łańcuch formatujący może być podany jako zmienna. W związku z tym możliwa jest np. taka konstrukcja:
#include <stdio.h>
int main(void)
char buf[100];
scanf ("*/,99s", buf); /* funkcja wczytuje tekst do tablicy buf */ printf(buf); return 0;
Program wczytuje tekst, a następnie wypisuje go. .ledirnk ponieważ znak procentu jest traktowany w specjalny sposób, toteż jeżeli na wejściu pojawi się ciąg znaków zawierający ten znak mogą się stać różne dziwne rzeczy. Między innymi z tego jx>wo-du w takich sytuacjach lepiej używać funkcji puts() lub fputs() opisanych niżej lub wywołania: printf (%s, zmienna) ;.
Więcej o funkcji printf()
Funkcja puts() przyjmuje jako swój argument ciąg znaków, który następnie bezmyślnie wypisuje na ekran kończąc go znakiem przejścia do nowej linii. W ten sposób, nasz pierwszy program mogli byśmy napisać w ten sposób:
#include <stdio.h>
int main(void)
puts("Helio world!"); return 0;