Top Banner
INPUT/OUTPUT FORMATİNG
25

INPUT/OUTPUT FORMATİNG

Jan 23, 2016

Download

Documents

gitano

INPUT/OUTPUT FORMATİNG. ~INPUT/OUTPUT formating~. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: INPUT/OUTPUT FORMATİNG

INPUT/OUTPUTFORMATİNG

Page 2: INPUT/OUTPUT FORMATİNG

Company Logo

~INPUT/OUTPUT formating~

         C++ ‘ın Giriş/Çıkış (Input/Output) sistemi akımlar

(stream) üzerinde hareket eder. Akım ise bilgiyi üretir yada alır. Akımı sanal bir cihaz gibide düşünebiliriz. Farklı aygıtlara aynı arabirimi

kullanarak ulaşabiliriz. C++ ‘daki kendiliğinden açılan akımlar; cout, cin, clog ve cerr ‘dir. Cerr

standart hatadır, clog ise önbellekli  standart hatadır.

Page 3: INPUT/OUTPUT FORMATİNG

Company Logo

~INPUT/OUTPUT formating~

Akımların yerli yerinde ve bir sistem içinde işlemesi için birçok kütüphaneye ihtiyaç vardır. C++ programında yapacağımız her eylemin bir kütüphane içinde dahil edilmesi gerektiği

unutulmaması gerekir.

Page 4: INPUT/OUTPUT FORMATİNG

Company Logo

C++ kütüphaneleri

<iostream> C++ programındaki giriş çıkış birimleri hakkında temel biligileri içeren bir

kütüphanedir. Örnek verecek olursak cin, cout, cerr and clog gibi standart giriş birimi standart çıkış birimi standart hata ayıklama

gibi temel bilgileri içerir.

Page 5: INPUT/OUTPUT FORMATİNG

Company Logo

<iostream> kütüphanesi

showpoint-noshowpoint

showbase-noshowbase

İnternal-left-right

fixed

boolalpha()-nonboolalpha()

showpos-noshowpos

scientific

dec-hex-oct

Uppercase-nouppercase

Page 6: INPUT/OUTPUT FORMATİNG

Company Logo

boolalpha-noboolalpha()

Girilen boolean değerinin true-false yada noboolalpha ile 1-0 olarak çıktısı sağlanır.

Örnek:

#include <iostream> using namespace std; int main () { bool b; b=true; cout << noboolalpha << b << endl; cout << boolalpha << b << endl; return 0; }

ÇIKTISI:

1TRUE

Page 7: INPUT/OUTPUT FORMATİNG

Company Logo

Dec-hex-oct

Girilen sayısal değeri decimal, hexadecimal ve octal değerli çıkışı sağlanır.

Örnek:

#include <iostream> using namespace std; int main () { int n; n=70; cout << dec << n << endl; cout << hex << n << endl; cout << oct << n << endl; return 0;

}

ÇIKTISI:

7046106

Page 8: INPUT/OUTPUT FORMATİNG

Company Logo

Showpos-noshowpos

Girilen sayısal değerlerin çıktısının pozitif yada negatif işaretli değerlerini gösterir.

ÖRNEK:

#include <iostream>

using namespace std;

int main (){

signed int p, z, n; p=1; z=0; n=-1;

cout << noshowpos << p << '\t' << z << '\t' << n << endl;

cout << showpos << p << '\t' << z << '\t' << n << endl;

return 0;

}

ÇIKTISI:

1 0 -1

+1 +0 -1

Page 9: INPUT/OUTPUT FORMATİNG

Company Logo

Fixed-scientific

FİXED:Girilen float-int-double float gibi sayıları verdiğimiz genişlikte sabitleyen bir komuttur.

SCIENTIFIC: Girilen sayısal ifadeyi bilimsel olarak gösteren komuttur.Örnek:

#include <iostream> using namespace std; int main () { double a,b,c; a = 3.1415926534; b = 2006.0; c = 1.0e-10; cout.precision(5); cout << a << '\t' << b << '\t' << c << endl; cout << fixed << a << '\t' << b << '\t' << c ;cout << scientific << a << '\t' << b << '\t'<< c;return 0;

}

ÇIKTISI:

3.1416 2006 1e-010

3.14159 2006.00000 0.00000

3.14159e+000 2.00600e+003 1.00000e-010

Page 10: INPUT/OUTPUT FORMATİNG

Company Logo

İnternal-left-right

Girilen değer için ayrılan alandaki hizalamayı sağlamak için kullanılan bir komuttur.

ÖRNEK:#include <iostream> using namespace std; int main () { int n; n=-77; cout.width(6); cout << left << n << endl; cout.width(6); cout << internal << n << endl; cout.width(6); cout << right << n << endl; return 0; }

ÇIKTISI:

-77

- 77

-77

Page 11: INPUT/OUTPUT FORMATİNG

Company Logo

Showbase-noshowbase

Girilen sayının basamak değerini normal yada tam karşılığını yazdırmak için kullanılan bir <iostream> kütüphanesi fonksiyonudur.

#include <iostream> using namespace std; int main () { int n; n=20; cout << hex << noshowbase << n << endl; cout << hex << showbase << n << endl; return 0;

}

ÇIKTISI:

14

0x14

Page 12: INPUT/OUTPUT FORMATİNG

Company Logo

Showpoint-noshowpoint

Girilen kayar nokatalı(double-float) sayılırın virgülden sonraki basamaklarının gösterilip gösterilmeyeceğinin belirtilmesi için kullanılır.

ÖRNEK:

#include <iostream> using namespace std; int main () { double a, b, pi; a=30.0; b=10000.0; pi=3.1416; cout.precision (5); cout << noshowpoint << a << '\t' << b << '\t' << pi << endl; cout << showpoint << a << '\t' << b << '\t' << pi << endl;return 0;

}

ÇIKTISI:

30 10000 3.1416

30.000 10000. 3.1416

Page 13: INPUT/OUTPUT FORMATİNG

Company Logo

Uppercase-nouppercase

Girilen değerin çıktısının büyük olup olmayacağını belirtir.

Örnek:#include <iostream> using namespace std; int main () { cout << uppercase << a << endl; cout << nouppercase << a << endl; return 0;

}

ÇIKTISI:

A

a

Page 14: INPUT/OUTPUT FORMATİNG

Company Logo

<iomanip>

iomanip.h c++ programına ait iostream kütüphanesinin yani standart giriş çıkış

birimlerinin formatlı yazdırma fonksiyonlarını içeren bir kütüphanedir.

<iomanip> kütüphanesine ait birçok fonksiyon vardır.

Page 15: INPUT/OUTPUT FORMATİNG

Company Logo

<iomanip>fonksiyonlarI

resetiosflags()

setf() –unsutf()

setbase() resetiosflags ()

setw()- width()

setfill()

setprecision()

setiosflags()

Page 16: INPUT/OUTPUT FORMATİNG

Company Logo

Setw() Fonksiyonu

Girilen herhangi bir değişken için ayrılacak olan karakter genişliğini belirlemeye yarayan bir

<iomanip> kütüphanesi fonksiyonudur. Diğer bir kullanım şekli ise “width()” şeklindedir.

Örnek:#include<iostream>#include<iomanip>using namespace std;int main(){ int sayi= 234; cout<<setw(9)<<sayi<<endl; cout<<setw(6)<<sayi <<endl; cout<<setw(3)<<sayi <<endl; return 0;}

ÇIKTISI:

- - - - - 234

- - - 234

234

Page 17: INPUT/OUTPUT FORMATİNG

Company Logo

Setfill()- Fonksiyonu

<iomanip> kütüphanesine ait formatlı yazdırma komutudur.Bu komutla bıraktığımız boşlukları verilen herhangi bir karakterle doldurmamızı sağlayan fonksiyondur.

Örnek:#include<iostream>#include<iomanip>using namespace std;int main(){ int sayi= 234; cout<<setfill('*')<<setw(9)<<sayi<<endl; cout<<setfill('*')<<setw(6)<<sayi <<endl; cout<<setfill('*')<<setw(4)<<sayi <<endl; return 0;}

ÇIKTISI:

* * * * * * 234* * * 234* 234

Page 18: INPUT/OUTPUT FORMATİNG

Company Logo

Setprecision() Fonksiyonu

Girilen ondalıklı sayıları formatlı bir şekilde ve noktadan sonraki duyarlılığı belirlemek için

kullanılan bir <iomanip> fonksiyondur. Örnek:#include<iostream>#include<iomanip> using namespace std;int main(){double sayi= 22.70964345;cout<<setprecision(5)<<sayi<<endl;cout<<setprecision(7)<<sayi <<endl;cout<<setprecision(8)<<sayi <<endl;return 0;}

ÇIKTISI:

22.70964

22. 7096434

22. 70964345

Page 19: INPUT/OUTPUT FORMATİNG

Company Logo

Setbase() Fonksiyonu

Biraz önce hex-dec ve oct foksiyonlarıyla sayıyı 16lık(hexadecimal), 10luk(decimal), 8 lik(octal), sayi sistemlerine dönüştürmek için kullanıyorduk. “setbase()” fonsiyonu ise istediğimiz basamağı

fonksiyona yazarak kullanılan bir <iomanip> komutudur.Ancak içine 8-10 ve 16 lık basamak değerlerini alır.

Örnek:#include <iostream> #include <iomanip> using namespace std; int main () { cout << setbase (16); cout << 100 << endl; return 0;

}

ÇIKTISI:

64

Page 20: INPUT/OUTPUT FORMATİNG

Company Logo

Setf() Fonksiyonu

Formatlı yazdırma tekniğinde özelikle sağa dayalı,sola dayalı hangi basamakta yazılacağını ve noktadan sonra kaç hane gösterilmesi gerekiyor diye kavramları belirlemek için kullanılan çok önemli bir fonksiyondur.

//cout.setf ( ios::right, ios::adjustfield); şeklinde kullanılır. Ve kullanımda çeşitli parametreler alabilir.

//adjustfield (left, right), basefield (dec, hex, oct), floatfield (scientific, fixed)

Page 21: INPUT/OUTPUT FORMATİNG

Company Logo

Setf() Fonksiyonu

örnek:#include <iostream>#include <iomanip>using namespace std;int main () {cout<<setw(15) //cout.width(8) diğer bir kullanım şeklicout.setf ( ios::left);cout.setf (ios::hex,ios::basefield); // hex(16)lık sistem seçildicout.setf ( ios::showbase ); // 0x aktif edildicout.fill(‘*'); cout << 200 << endl;cout.setf ( ios::fixed, ios::noshowbase ); // 0x kaldırıldıcout << 200 << endl;return 0;}

ÇIKTISI:

0X128 * * * * * * * * * *

128

Page 22: INPUT/OUTPUT FORMATİNG

Company Logo

Unsetf() Fonksiyonu

“Unsetf()” komutu ise adındanda anlaşılacağı gibi “setf()” fonksiyonun tam tersi işleve sahip bir

fonksiyondur. Aynı programda setf ile oluşturulan (basefield gibi) seçilen alanın format özelliklerini devre dışı bırakır ve bir önceki ya da

doğal halinin görüntülenmesini sağlar.

Kullanımı // cout.unsetf ( ios_base::basefield ); şeklindedir. Bir önceki proğramda kullanılan

basefield özelliğini kaldırmamızı sağlar.

Page 23: INPUT/OUTPUT FORMATİNG

Company Logo

Unsetf() Fonksiyonu

Örnek:#include <iostream>#include <iomanip>using namespace std;int main ()

{cout.setf(ios_base::hex,ios_base::basefield ); //hex(16) sayı basamağı seçildi

cout << 200 << endl;cout.unsetf (ios_base::basefield ); // onaltılık sayı sistemi geri dönüştürüldücout << 200 << endl; ve tekrar standart olan 10 luk sayı basamağına dönüştürüldü.

return 0;}

ÇIKTISI:

0X128 200

Page 24: INPUT/OUTPUT FORMATİNG

Company Logo

Setiosflags() Fonksiyonu

“setiosflags()” fonksiyonu ile girilen değere showbase-uppercase gibi özeliği vermezi sağlayan bir <iomanip> kütüphanesi fonsiyonudur.

Örnek:#include <iostream>

#include <iomanip>using namespace std;int main (){ cout << hex << setiosflags ( ios_base::uppercase | ios_base::showbase);cout << 200 << endl; return 0;

}

ÇIKTISI:

0X128

Page 25: INPUT/OUTPUT FORMATİNG

Company Logo

Resetiosflags() Fonksiyonu

“Resetiosflags()” Fonksiyonu ise “setiosflags()” fonksiyonun tam tersi özelliğe sahip bir fonsiyondur. Aynı programda “setiosflags()”ile verilen formatın özelliklerini devre dışı bırakır ve bir önceki ya da doğal halinin görüntülenmesini sağlar. Yani reset atmış olur

Örnek:#include <iostream>#include <iomanip>using namespace std;int main () {cout << hex << setiosflags (ios_base::showbase);cout << 200 << endl;cout << resetiosflags (ios_base::showbase) << 100 << endl;return 0;}

ÇIKTISI:

128