Стандартні потоки

На початку виконання будь-якої програми, що написана на мові С, автоматично відкривається з потоки:

stdin – стандартний потік введення, як правило використовується для введення з клавіатури;

etdout – стандартний потік виведення, як правило використовується виведення на дисплей/монітор;

stderr – стандартний потік помилок.

Потоки stdin, stdout та stderr є можливість застосовувати як файлові вказівники в будь-якій функції, що використовує вказівник типу file*.

Приклад зчитування з клавіатури символьного рядка використовуючи потік введення. Необхідно відмітити, що такий спосіб введення більш коректний ніж використання функції gets(), тому що при її використанні виникають проблеми з переповненням. Єдиним мінусом використання функції fgets() є те, що вона зчитує та записує символьний рядок з символом переходу на наступний рядок. В наведеному прикладі показано як здійснити введення та заміни символу переходу у разі потреби.

#include <stdio.h> #include <string.h> int main() { char str[80]; int i;  
printf("Введіть символьний рядок: ");  
fgets(str, 10, stdin); // зчитування символьного рядка з потоку stdin, що відповідає за введення та по замовчуванню є клавіатурою
i = strlen(str)-1; // визначаємо довжину символьного рядка
/* Перевіряємо кінцевий символ чи є він переходом на наступний рядок, а потім знищуємо його */
if(str[i]=='\n') str[i] = '\0';  
printf("Введений рядок %s", str); //виводимо символьний рядок
return 0; }