Inne działy

 

 

Język C funkcja printf

 

W naszym pierwszym przykładzie 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ę kodowi następującego programu:

#include <stdio.h>
int main(void)
{
printf("Witaj świecie!\n");
return 0;
}

 

W naszym przykładowym programie, chcąc by funkcja printf() wypisała tekst na ekranie, umieściliśmy go w cudzysłowach wewnątrz nawiasów. Ogólnie, wywołanie funkcji printf() wygląda następująco:

printf(format, argument1, argument2, ...);

Przykładowo:

int i = 500;
printf("Liczbami całkowitymi są na przykład %i oraz %i.\n", 1, i);

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 \nj est zamieniany na znak nowej linii.

Natomiast procent jest podmieniany na jeden z argumentów. Po procencie następuje specyfikacja, jak wyświetlić dany argument. W tym przykładzie %i (od int) oznacza, że argument ma być wyświetlony jak liczba całkowita. W związku z tym, że \i% mają specjalne znaczenie, aby wydrukować je, należy użyć ich podwójnie:

printf("Procent: %% Backslash: \\");

drukuje:

Procent: % Backslash: \

(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("%i %s %i", 5, 4, "napis"); /* powinno być: "%i %i %s" */

Przy włączeniu ostrzeżeń (opcja-Wall lub -Wformat w GCC) kompilator powinien nas ostrzec, gdy format nie odpowiada podanym elementom.


Najczęstsze użycie printf():

  • printf(%i, 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. 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 w dalszych artykułach lub wywołania: printf (%s, zmienna);

 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.