Стандартні потоки
На початку виконання будь-якої програми, що написана на мові С, автоматично відкривається з потоки:
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; } |