Dasar Pemrograman Komputer [TKL-4002] 2010

Slides:



Advertisements
Presentasi serupa
Pemrograman Terstruktur
Advertisements

Input/Output.
Struktur Dasar Bahasa C
BAHASA PEMROGRAMAN C IRSAN JAELANI.
Algoritma dan Struktur Data
KONSEP BAHASA PEMROGRAMAN
Pemrograman Dasar[PTI-15001] 2012
DASAR-DASAR PEMROGRAMAN C
DASAR-DASAR PEMROGRAMAN
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Pemrograman Terstruktur
Pengajar : ELIYANI, S.T., M.Kom Semester : I Tahun : 2012/ 2013
CSE1301 Sem /8/2017 File I/O Lecture 19: File I/O.
Chapter 3.2 : Tipe, Nama dan Nilai
Pemrograman Terstruktur
Pemrogramman Terstruktur
Perintah Input/Output
INSTRUKSI MASUKAN DAN KELUARAN
7. 1 Bab 07 Menginput Nilai melalui Keyboard.
Pengenalan Variabel, Tipe Data dan Perintah Masukan dan Keluaran
Dasar Pemrograman Komputer [TKL-4002] 2010
Perintah Input-OutPut
ALGORITMA DAN PEMROGRAMAN 1 Lab K Semester 1 WLD,Nanda,Hefi.
Algoritma dan Struktur Data
Elemen Dasar Program C++
File Data Pertemuan ke 13..
Elemen-elemen dlm source code
II. Introduction to Turbo C
Dasar Pemrograman Komputer [TKL-4002] 2010
Pertemuan String Matakuliah : T0616 / Algoritma dan Pemrograman
Statement Input – Output
Dasar Pemrograman Komputer
1 Latihan Pertemuan String Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 1/0.
Matakuliah : T0016 / Algoritma dan Pemrograman Tahun : 2007 Versi : 6
Modul 2 Pengenalan Bahasa C++
1 Pertemuan Operasi Input Output Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1 Pertemuan 1 Pengenalan Pemrograman Terstruktur C Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: xxx/2.
Elemen Dasar C++ Norma Amalia, ST.,M.Eng.
DASAR PEMROGRAMAN C Oleh : sgo.
Bahasa Pemprograman Dasar Pertemuan 3
Pengantar C++.
Elemen Dasar C Identifier :
Pertemuan 1 Pengenalan Bahasa C++.
Pendahuluan & identifier pada bahasa c dan c++
INPUT DAN OUTPUT OLEH: SRI SUPATMI,S.KOM.
Pertemuan III Komentar, Identifier dan Tipe data.
Elemen dasar Pertemuan 3.
Input dan Output TEE 2103 Algoritma dan Pemrograman
Pertemuan 4 PROGRAMMING LANGUAGE.
Dasar Pemrograman Renni Angreni, S.Kom.
Operasi Input Output.
MATERI 1 Review dan Pengantar C (Struktur Bahasa C, Variabel, Konstanta, Tipe Data, Operator)
Mengenal Model Data, Perintah I/O
Perintah Input/Output
TEL 2112 Dasar Komputer & Pemrograman
02.1 Hari-2.
(Struktur Dasar, Variabel, Tipe Data, Input, Output, Komentar)
Bagian 4 LINTAS DATA.
Input Dan Output.
Pemrograman Terstruktur
Pemrograman Terstruktur
PERINTAH INPUT DAN OUTPUT
Input dan Output Pertemuan ke-3 Bahasa C.
Mencetak & Membaca Data
Variabel dan Tipe Data TEE 2103 Algoritma & Pemrograman
Pertemuan 2 Pengantar Pemrograman
MATERI 1 Review dan Pengantar C (Struktur Bahasa C, Variabel, Konstanta, Tipe Data, Operator)
Mencetak Nilai Konstanta
Pengantar Pemrograman Bahasa C
Bab 03 Variabel dan Tipe Data
Transcript presentasi:

Dasar Pemrograman Komputer [TKL-4002] 2010 Operasi Output Input Pertemuan 03 Dasar Pemrograman Komputer [TKL-4002] 2010

Learning Outcomes Pada akhir pertemuan, diharapkan mahasiswa akan mampu : Menggunakan standard library function yang berhubungan dengan operasi output dan input standart dalam bahasa pemrograman C.

Outline Materi Operasi Output-Input Operasi Output standart, spt: putchar, putch, puts, printf. Format Output Operasi Input standart, spt: getchar, getch, getche, gets, scanf Format Input

Operasi Output Menampilkan Data Tidak Terformat Operasi output dipakai untuk menampilkan nilai data ke peralatan output sebagai data keluaran. Beberapa fungsi (standard library function) yang terdapat pada bahasa pemrograman C di antaranya: Menampilkan Data Tidak Terformat putchar(); putch(); puts(); Menampilkan Data Terformat printf();

Output Standart Peralatan output standart adalah layar monitor. Simbol yg lazim digunakan dalam flowchart untuk output standart adalah: Cetak ...............

Fungsi putchar() Sintak: int putchar(int c) Fungsi: Contoh: Menampilkan karakter ke layar monitor pada cursor, kemudian setelah ditampilkan cursor bergerak ke posisi berikutnya. Mengembalikan EOF jika error, dan mengembalikan karakter yang ditampilkan jika sukses Putchar adalah macro yang sama artinya dengan: putc(c, stdout ) Header File : stdio.h Contoh: char ch=’A’; putchar(ch);

Fungsi putch() Sintak: int putch(int ch); Fungsi : Seperti putchar(ch) untuk menampilkan karakter ASCII dari ch di layar monitor. Header file : conio.h Mengembalikan EOF jika error, dan mengembalikan karakter yang ditampilkan jika sukses. Contoh: char ch=’b’; putch(ch);

Fungsi puts() Sintak: Fungsi: Contoh: puts(”Selamat Datang”); int puts(const char *str); Fungsi: Menampilkan string str ke layar monitor dan memindahkan kursor ke baris baru. Header file: stdio.h Mengembalikan nilai non-negative jika sukses dan EOF jika ada error. Contoh: puts(”Selamat Datang”); puts(”Di Bahasa Pemrograman C”);

Fungsi putch(), putchar() & puts() Contoh Program #include<stdio.h> #include<conio.h> int main(){ char c; c='A'; putch(65); putchar(65); putch(c); putchar(c); puts(“Ini data String”); putch('\n'); putchar('\n'); getch(); return(0); } Output: AAAAIni data String Press any key to continue . . .

Fungsi printf Menampilkan sejumlah nilai data ke standard output, dengan format tertentu. Standard output adalah Layar Monitor, sedangkan Standard Input adalah Keyboard. Header file untuk printf adalah: stdio.h Sintak : printf(const char *format[,argument, …]);

Fungsi printf Spesifikai format sbb: %[flags][width][.precision] type Spes. Format Keterangan flags Menentukan rata kanan, kiri atau bertanda: None : rata-kanan - : rata-kiri + : menampilkan tanda (+ atau -) width Menentukan jumlah kolom yang disediakan precision menentukan jumlah angka di belakang titik desimal (untuk bilangan pecahan) type Menentukan tipe variabel/nilai-data yang akan ditampilkan

Type Format Type Format Keterangan c Menampilkan karakter tunggal s Menampilkan string d atau i Menampilkan bilangan integer bertanda u Menampilkan bilangan integer desimal tak bertanda x Menampilkan bilangan integer hexadesimal tak bertanda (x dlm huruf kecil dan X dlm huruf besar) o Menampilkan bilangan integer oktal tak bertanda f Menampilkan bilangan pecahan (titik desimal) E atau e Menampilkan bilangan pecahan eksponensial G atau g Menampilkan bilangan pecahan p Menampilkan pointer L atau l atau h Awalan untuk L atau l (long) dan h (short).

Format Karakter Kode Format Keterangan Contoh: #include<stdio.h> Menampilkan sebuah karakter tunggal terformat “%nc” Menampilkan sebuah karakter lebar n kolom rata kanan “%-nc” Menampilkan sebuah karakter lebar n kolom rata kiri Contoh: #include<stdio.h> #include<iostream.h> int main(){ printf("%c\n",65); printf("%5c%5c%5c\n",65,66,67); printf("%-5c%-5c%-5c\n",65,66,67); system("PAUSE"); return(0); }

Format String Kode Format Keterangan “%s” Menampilkan sebuah nilai string terformat “%ns” Menampilkan nilai string lebar n kolom rata kanan “%-ns” Menampilkan nilai string lebar n kolom rata kiri “%n.ms” Menampilkan rata kanan hanya m buah karakter pertama saja dengan lebar n kolom. “%-n.ms Menampilkan rata kiri hanya m buah karakter pertama saja dengan lebar n kolom.

Contoh Menampilkan String #include<stdio.h> #include<iostream.h> int main(){ char s[20]="Pemrograman C"; printf("%s%c\n",s,'|'); printf("%30s%c\n",s,'|'); printf("%-30s%c\n",s,'|'); printf("%30.5s%c\n",s,'|'); printf("%-30.5s%c\n\n\n",s,'|'); system("PAUSE"); return(0); }

Format Desimal Integer Kode Format Keterangan “%d”, “%i” Menampilkan sebuah nilai signed integer terformat “%u” Menampilkan sebuah nilai unsigned integer terformat “%ld”, “%li” Menampilkan sebuah nilai long integer terformat “%hi” Menampilkan sebuah nilai short integer terformat “%hu” Menampilkan sebuah nilai unsigned short integer terformat “%lu” Menampilkan sebuah nilai unsigned long integer terformat “%ni”, “%nd” Menampilkan sebuah nilai integer terformat n kolom rata kanan “%-ni”, “%-nd” Menampilkan sebuah nilai integer terformat n kolom rata kiri “%+ni”, “%+nd” Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kanan “%-+ni”, “%-+nd” Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kiri “%0ni”, “%0nd” Menampilkan sebuah nilai integer terformat n kolom rata kanan dg blank di depan diganti 0.

Contoh Menampilkan Desimal Integer #include<stdio.h> #include<iostream.h> int main(){ int x=1234, y=-567; long int z = -567; printf("%d %u %hi %lu\n",y,y,y,z); printf("Size of short:%d int:%d long:%d\n\n", sizeof(short int), sizeof(int), sizeof(long int)); printf("%d %+8d %+8d %+8ld\n",x,x,y,z); printf("%d %-8d %-8d %-8ld\n",x,x,y,z); printf("%d %-+8d %-+8d %-+8ld\n",x,x,y,z); printf("%d %+-8d %+-8d %+-8ld\n",x,x,y,z); printf("%0d %+08d %+08d %+08ld\n\n",x,x,y,z); system("PAUSE"); return(0); }

Format Hexadesimal Kode Format Keterangan “%x”, “%X” Menampilkan nilai unsigned integer terformat hexadesimal “%nx”, “%nX” Menampilkan format hexadesimal lebar n kolom rata kanan “%0nx”, “%0nX” Menampilkan format hexadesimal lebar n kolom rata kanan dg blank di depan diganti 0. “%-nx”, “%-nX” Menampilkan format hexadesimal lebar n kolom rata kiri “%#x”, “%#X” Menampilkan format hexadesimal diawali dengan “0x” atau “0X” “%#nx”, “%#nX” Menampilkan format hexadesimal lebar n kolom rata kanan diawali dengan “0x” atau “0X” “%#-nx”, “%#-nX” Menampilkan format hexadesimal lebar n kolom rata kiri diawali dengan “0x” atau “0X”

Contoh Menampilkan Hexadesimal #include<stdio.h> #include<iostream.h> int main(){ int x=7654; printf("%x %X %10x %10X\n\n",x,x,x,x); printf("%x %X %-10x %-10X\n\n",x,x,x,x); printf("%x %X %010x %010X\n\n",x,x,x,x); printf("%#x %#X %#10x %#10X\n\n",x,x,x,x); printf("%#x %#X %#010x %#010X\n\n",x,x,x,x); printf("%#x %#X %#-10x %#-10X\n\n",x,x,x,x); system("PAUSE"); return(0); }

Format Oktal Kode Format Keterangan “%o” Menampilkan nilai unsigned integer terformat oktal “%no” Menampilkan format oktal lebar n kolom rata kanan “%0no” Menampilkan format oktal lebar n kolom rata kanan dg blank di depan diganti 0. “%-no” Menampilkan format oktal lebar n kolom rata kiri “%#o” Menampilkan format oktal diawali dengan “0” “%#no” Menampilkan format oktal lebar n kolom rata kanan diawali dengan “0” “%#-no” Menampilkan format oktal lebar n kolom rata kiri diawali dengan “0”

Contoh Menampilkan Oktal #include<stdio.h> #include<iostream.h> int main(){ int x=7654; printf("%o %10o%c\n\n",x,x,'|'); printf("%o %-10o%c\n\n",x,x,'|'); printf("%o %010o%c\n\n",x,x,'|'); printf("%o %#o%c\n\n",x,x,'|'); printf("%o %#-10o%c\n\n\n",x,x,'|'); system("PAUSE"); return(0); }

Format Desimal Pecahan Kode Format Keterangan “%f” Menampilkan sebuah nilai float (pecahan) desimal terformat “%e” Menampilkan sebuah nilai float desimal terformat saintifik “%g” Menampilkan sebuah nilai float desimal terformat yang terpendek di antara “%f” atau “%e” “%lf”, “%le”, “%lg” Menampilkan sebuah nilai pecahan terformat double “%Lf”, “%Le”, “%Lg” Menampilkan sebuah nilai pecahan terformat long double “%nf” Menampilkan nilai float integer terformat n kolom rata kanan “%-nf” Menampilkan nilai float integer terformat n kolom rata kiri “%n.mf” Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal “%0n.mf” Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal dan blank di depan diganti 0. “%-+n.mf” Menampilkan nilai float terformat dg tanda (+/-) n kolom rata kiri dg m digit di belakang titik desimal

Contoh Menampilkan Nilai Pecahan #include<stdio.h> #include<iostream.h> int main(){ float x=7654.123456789; double d = 7654.123456789012345l; printf("%f %15f %15.3f\n\n",x,x,x); printf("%e %15e %15.3e\n\n",x,x,x); printf("%g %15g %15.3g\n\n",x,x,x); printf("%lf %20lf %+20.9lf\n\n",d,d,d); system("PAUSE"); return(0); }

Contoh Menampilkan Data Keluaran #include<stdio.h> #include<math.h> #include<iostream.h> int main(){ int n; float l; double fb; printf(" TABEL FAKTOR BUNGA MAJEMUK\n\n"); printf(" n %10s %10s %10s %10s %10s\n\n", "1.0%","2.0%","3.0%","4.0%","5.0%"); for(n=1; n<=15; n++){ printf("%02d ",n); for(int i=1; i<=5; i++){ fb = pow(1.0 + i/100.0, n); printf("%11.7lf",fb); } printf("\n"); system("PAUSE"); return(0);

Penempatan Kursor Layar dibagi dalam kolom dan baris, umumnya digunakan ukuran kolom = 80 dan baris = 25. (1,1) (1,25) (80,1) (80,25) y x

Penempatan Kursor Pada Turbo-C Layar dapat dihapus dengan menggunakan fungsi: clrscr(); Kursor dapat dipindahkan ke posisi manapun di dalam layar monitor dengan menggunakan fungsi : gotoxy(col,row); dimana col = kolom dan row = baris Sebagian dari baris, mulai posisi kursor hingga akhir baris (end of line), dapat dihapus dengan fungsi: clreol(); Function prototype untuk fungsi gotoxy(), clrscr(), clreol() pada bahasa C terdapat pada header file : <conio.h>

Penempatan Kursor Contoh : #include <stdio.h> #include <conio.h> int main() { float panjang, lebar, luas, keliling; /* local variable */ clrscr(); /*membersihkan layar*/ gotoxy(30,10); printf(”Panjang : ”); scanf(“%f”,&panjang); gotoxy(30,11); printf(“Lebar :” ); scanf(“%f”,&lebar); keliling = 2 * panjang * lebar; luas = panjang * lebar; gotoxy(30,13); printf(“Keliling = %8.2f ”, keliling); gotoxy(30,14); printf(“Luas = %8.2f‘, luas ); return(0); }

Operasi Input Operasi input: operasi untuk menyimpan nilai data ke variabel tertentu melalui peralatan I/O, spt: keyboard, disk, dll. Standard library function berkaitan operasi input standart di bahasa pemrograman C di antaranya: getchar(); getch(); getche(); gets(); scanf();

Input Standart Peralatan input standart adalah keyboard. Simbol yg lazim digunakan dalam flowchart untuk input standart adalah: Baca Daftar_variabel

Fungsi getchar() Sintak: int getchar(void): Fungsi: Contoh: char ch; mengembalikan sebuah karakter (nilai ASCII) dari buffer keyboard. Karakter ditampilkan di layar monitor Menunggu sampai ditekan ENTER Header file terdapat di stdio.h Contoh: char ch; ch = getchar();

Fungsi getch() Sintak: int getch(void): Fungsi: Contoh: char ch; mengembalikan satu karakter dari buffer keyboard karakter tidak ditampilkan di layar monitor (no echo) Tidak menunggu sampai ada ENTER Header file terdapat di conio.h Contoh: char ch; ch = getch();

Fungsi getche() Sintak: int getche(void) Fungsi : Contoh: char ch; mengembalikan satu karakter dari keyboard Karakter ditampilkan di layar (echo) Tidak menunggu sampai ada ENTER Header file terdapat di conio.h Contoh: char ch; ch = getche();

Fungsi gets() Sintak: void gets(char *buffer) Fungsi: Contoh: membaca string dari keyboard sampai new-line dan disimpan pada buffer. Kemudian new-line diubah menjadi karakter null Mengembalikan nilai NULL jika ada error dan mengembalikan argumentnya (buffer) jika sukses. Contoh: char buffer[40]; gets(buffer);

Fungsi scanf() Header file dari scanf terletak di stdio.h Format: int scanf( const char *format [, argument]... ); Semua tipe argument pada scanf adalah pointer (alamat dari variabel yang akan diisi data). Untuk memperoleh alamat dari variabel digunakan operator &. Fungsi scanf didefinisikan di header file stdio.h Contoh : int umurTahun; scanf(”%d”, &umurTahun);

Fungsi scanf() Spesifikai format adalah : ”% type” dimana type bisa diganti dengan salah satu dari sbb: type DIPAKAT UNTUK MEMBACA d,i u x e,f,g c - Data integer - Data unsigned integer - Data heksadesimal - Data floating point - Single character s o […] [^..] - Karakter string diakhiri dengan whitespace Data unsigned octal Karakter string diakhiri dengan karakter yg tidak ada didalam [...] - Karakter string diakhiri dengan karakter yg ada didalam [..]

Fungsi scanf() Jika x adalah variabel integer bernilai 234 dan memiliki alamat 4567. Apakah beda antara x dgn &x? Jawab: Nilai Data/ isi-memori Nama Variabel Alamat-Memori (&x) X 234 45678 Bila: y = x; maka y akan berisi data 234 y = &x; maka y akan berisi alamat dari x yaitu 45678

Fungsi scanf() Fungsi scanf mengembalikan tipe integer, dimana nilai nya menyatakan jumlah field yang sukses di assigned. Contoh: int x,y,z,w; x = scanf("%d %d %d", &y, &z, &w); Jika di input dari keyboard 3 buah nilai interger 6 7 8, maka nilai x = 3; Jika di input dari keyboard 4 buah nilai interger 6 7 8 9 maka nilai x = 3 (karena 3 nilai yg sukses di-assigned masing-masing ke variabel y, z dan w)

Fungsi scanf() Contoh Program Luas Segi Empat /* Program Luas_Segi_Empat v1*/ #include <stdio.h> #include <iostream.h> int main() { int panjang, lebar, luas; printf("Menghitung Luas Segiempat\n\n"); printf("Panjang : "); scanf("%d",&panjang); printf(“Lebar : "); scanf("%d",&lebar); luas = panjang * lebar; printf("\nLuas = %d x %d = %d\n\n", panjang, lebar, luas); system("PAUSE"); return(0); }

Fungsi scanf() Mengambil data string dari keyboard dengan fungsi scanf menggunakan format: %s. Contoh: char ss[40]; scanf(”%s”,ss); Perhatikan contoh diatas, karena variabel ss tipenya sudah pointer (Topik tentang pointer akan dibahas tersendiri), maka tidak perlu ditambah tanda & (&ss). String yang diambil hanya sampai karakter whitespace.

Fungsi scanf() Karakter Space, tab, linefeed, carriage-return, formfeed, vertical-tab, dan newline disebut ”white-space characters” Contoh : Pada potongan program diatas, jika dimasukkan string ”Selamat Pagi Pak” dari keyboard maka yg dimasukkan ke variabel ss hanya “Selamat” saja. Untuk mengambil string yang diakhiri karakter tertentu (misalnya ENTER), dengan scanf dapat menggunakan format [^\n]

Fungsi scanf() Contoh: char ss[40]; scanf(”%[^\n]”,ss); Pada potongan program diatas, jika dimasukkan string ”Selamat Pagi Pak” kemudian tekan ENTER dari keyboard maka variabel ss berisi string “Selamat Pagi Pak”

Fungsi scanf() Contoh: char ss[40]; scanf(”%[a-z]”,ss); Pada potongan program diatas, jika dimasukkan string: http://brawijaya.ac.id kemudian tekan ENTER dari keyboard maka variabel ss hanya berisi string: http karena titik dua (:) tidak ada diantara a s/d z, dan titik dua dianggap sebagai akhir dari string.

Fungsi scanf() Contoh: int x; scanf("%o", &x); Pada potongan program di atas, jika dimasukkan bilangan : 44 kemudian tekan ENTER dari keyboard maka variabel x akan berisi nilai : 36 desimal, karena 44 dianggap bilangan berbasis oktal.

Fungsi scanf() Contoh: int x; scanf("%x", &x); Pada potongan program diatas, jika dimasukkan bilangan : 44 kemudian tekan ENTER dari keyboard maka variabel x akan berisi nilai : 68 desimal, karena 44 dianggap bilangan berbasis heksadesimal.

Latihan int x,y,z,w; x=scanf("%d %d %d",&y,&z,&w); Apa yang terjadi jika pada program diatas di input 2 nilai integer dari keyboard? Berapa nilai x jika diinput dari keyboard 3 buah character ?

Latihan char ss1[40]; char ss2[40]; x=scanf(”%s %s”,ss1,ss2); Apa isi variabel ss1 dan ss2, jika dari keyboard diinput string ”Selamat Pagi Pak” ? Berapa nilai x jika diinput dari keyboard : ”Kelas 1PAT”

Latihan char ss[40]; scanf(”%4s”, ss); Apa isi variabel ss, jika dari keyboard diinput string ”Selamat Pagi” ? char ch; ch = getchar(); Apa isi variabel ch, jika dari keyboard di-input : TIF-FTUB char ch1, ch2; ch1 = getchar(); //masukkan kata TIF-FTUB! ch2 = getchar(); Apa isi variabel ch1 dan ch2, jika dari keyboard di-input : TIF- FTUB

Latihan Buatlah program untuk menerima input dari keyboard, berupa nilai : Tugas Kelompok (NTK) Nilai Kuis (NK) Nilai UAS (NUAS) Hitung dan tampilkan nilai akhir dengan rumus : NA = 20 % * Nilai NTK + 30 % Nilai Kuis + 50 % Nilai UAS

Latihan #include <stdio.h> int main() { char nama[40]; int nim; char jk; printf("Nama:"); scanf("%[^\n]",nama); printf("Nim:"); scanf("%d",&nim); printf("Jenis Kelamin (L/P):"); jk=getchar(); return 0; } Perhatikan Program di atas! Setelah memasukkan nama dan nim dari keyboard, program langsung keluar, instruksi jk=getchar(); seolah-olah tdk pernah dieksekusi, jelaskan mengapa demikian?

Latihan #include <stdio.h> int main(){ char ss[]="10 % 3 = 1\n"; char str[]="Selamat Datang di Binus\n"; printf(ss); printf("%s",ss); printf(str); printf("%s",str); return 0; } Apakah output dari program diatas ?

Latihan Jelaskan fungsi/kegunaan dari Standard library function sbb: sscanf sprintf fflush cprintf Cscanf Jelaskan maksud dari nama sbb: stdin stdout stderr