C/Podstawowe procedury wejścia i wyjścia: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
CarsracBot (dyskusja | edycje)
Linia 17:
 
W [[C/Pierwszy_program|przykładzie "Hello World!"]] użyliśmy już jednej z dostępnych funkcji wyjścia, a mianowicie funkcji printf(). Z punktu widzenia swoich możliwości jest to jedna z bardziej skomplikowanych funkcji, a jednocześnie jest jedną z najczęściej używanych. Przyjrzyjmy się ponownie kodowi programu "Hello, World!".
<source lang="C">
 
#include <stdio.h>
Linia 25:
return 0;
}
</source>
 
Po skompilowaniu i uruchomieniu, program wypisze na ekranie:
 
Linia 34:
printf(format, argument1, argument2, ...);
Przykładowo:
<source lang="C">
int i = 500;
printf("Liczbami całkowitymi są na przykład %i oraz %i.\n", 1, i);
</source>
wypisze
Liczbami całkowitymi są na przykład 1 oraz 500.
''Format'' to napis ujęty w cudzysłowy, który określa ogólny kształt, schemat tego, co ma być wyświetlone. Format jest drukowany tak, jak go napiszemy, jednak niektóre znaki specjalne zostaną w nim podmienione na co innego. Przykładowo, znak specjalny <tt>\n</tt> jest zamieniany na znak nowej linii <ref>Zmiana ta następuje w momencie kompilacji programu i dotyczy wszystkich literałów napisowych. Nie jest to jakaś szczególna własność funkcji printf(). Więcej o tego typu sekwencjach i ciągach znaków w szczególności opisane jest w rozdziale [[C/Napisy|Napisy]].</ref>. Natomiast procent jest podmieniany na jeden z argumentów. Po procencie następuje specyfikacja, jak wyświetlić dany argument. W tym przykładzie <tt>%i</tt> (od '''i'''nt) oznacza, że argument ma być wyświetlony jak liczba całkowita. W związku z tym, że <tt>\</tt> i <tt>%</tt> mają specjalne znaczenie, aby wydrukować je, należy użyć ich podwójnie:
<source lang="C">
printf("Procent: %% Backslash: \\");
</source>
drukuje:
Procent: % Backslash: \
Linia 54 ⟶ 58:
 
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:
<source lang="C">
 
#include <stdio.h>
Linia 64 ⟶ 68:
return 0;
}
</source>
 
Program wczytuje tekst, a następnie wypisuje go. Jednak 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 powodu w takich sytuacjach lepiej używać funkcji puts() lub fputs() opisanych niżej lub wywołania: <code>printf("%s", zmienna);</code>.