Print Text ditengah Layar Console C++
Assalamu'alaikum Wr. Wb.
Beberapa hari ini ane lagi sibuk dengan tugas (maklum anak kuliahan :D haha) dengan C++. Di program C++ tersebut banyak dibutuhkan kerapian seperti mem-print output text di tengah aplikasi console.
Beberapa teman ane liat ngelakuinnya masih make tab (\t). Menurut ane sih itu agak repot dan kurang efektif. Jadi iseng searching di Stack Overflow dan nemu beberapa kode berikut (udah ane modif-modif juga sih .__.). Langsung saja disimak :D
Fungsi
Letakin kode fungsi berikut sebelum fungsi utama ( int main() ).Fungsi pertama
string tengah1(int width, char* s) {
stringstream ss; //stringstream, untuk menampung string yg akan di outputkan
int pos = width / 2 + int(strlen(s) / 2); //mengatur jarak
ss << setw(pos) << s; //mengatur posisi string ke tengah
return ss.str(); //keluaran
}
Note : untuk fungsi pertama, harus tambahkan header #include <iomanip> dan #include <sstream> terlebih dahulu.
<iomanip> : untuk fungsi setw().
<sstream> : untuk objek stringstream.
Fungsi kedua
string tengah2(int width, char* s) {
stringstream ss;//stringstream, untuk menampung string yg akan di outputkan
int l = strlen(s); // l = jumlah karakter variabel s
int pos = (int)((width - l) / 2); //atur jarak spasi agar ke tengah
for (int i = 0; i < pos; i++) { ss << " "; } //append spasi di ss
ss << s; //append s di ss
return ss.str(); //keluaran
}
Note : untuk fungsi kedua, cukup tambahkan header #include <sstream> saja.
<sstream> : untuk objek stringstream.
Penggunaan
Sebelum mulai coding, dicek dulu berapa size window aplikasinya (defaultnya 80).Pertama debug aplikasinya, klik kanan pada title window.
Klik properties. Klik tab layout, kemudian salin window size (widthnya).
Jika yang masih bingung mau pake fungsi yang mana, mungkin hasil benchmark ane berikut bisa memberikan sedikit pencerahan.
1 = 0.01, 0.012, 0.012, 0.012, 0.012 = 0.0116
2 = 0.011, 0.012, 0.011, 0.012, 0.011 = 0.0114
Dari 5 kali percobaan dengan string yang sama (80 bytes), fungsi kedua lebih cepat 0.0002 detik dari fungsi pertama.
Kode
// Contoh :
cout << namaFungsi(width, "Teks");
// Demo :
cout << tengah1(80, "-------------------------------\n");
cout << tengah1(80, "Hello World!\n");
cout << tengah1(80, "-------------------------------\n");
cout << tengah2(80, "-------------------------------\n");
cout << tengah2(80, "Hello World!\n");
cout << tengah2(80, "-------------------------------\n");
Output
Metode Lainnya (Fungsi void, tanpa nilai pengeluaran)
//fungsi
void tengah1(int width, char* s) {
int pos = width / 2 + int(strlen(s) / 2);
cout << setw(pos) << s; //harus include header <iomanip> / <iomanip.h>
}
void tengah2(int width, char* s) {
int l = strlen(s);
int pos = (int)((width - l) / 2);
for (int i = 0; i < pos; i++) { cout << " "; }
cout << s;
}
//penggunaan (tanpa cout)
tengah1(80, "-------------------------------\n");
tengah1(80, "Hello World!\n");
tengah1(80, "-------------------------------\n");
tengah2(80, "-------------------------------\n");
tengah2(80, "Hello World!\n");
tengah2(80, "-------------------------------\n");
Sekian dulu. Semoga bermanfaat :) Silahkan tinggalkan komentar di bawah jika ada pertanyaan, feedback, atau penambahan kode :)
2 komentar :
Iklan
Formulir Kontak
Popular Posts
-
Assalamu'alaikum Wr. Wb. Beberapa hari ini ane lagi sibuk dengan tugas (maklum anak kuliahan :D haha) dengan C++. Di program C++ te...
-
Assalamu'alaikum Wr. Wb. Beberapa minggu terakhir ane jadi jarang posting di blog. Maklum hari libur jadi suka main game sampe...
-
Assalamu'alaikum Wr. Wb. Lama gak corat coret di blog. hue :sorry Postingan ini mungkin hanya sebagai selingan pengisi blog yang ko...
-
Assalamu'alaikum Wr. Wb. Jumpa lagi :cool di postingan kali ini ane bakal ngasih tutorial sederhana buat mengganti atau menghilangk...
-
Assalamu'alaikum Wr. Wb. Kali ini ane mau rilis tool sederhana buat indent kode C dan C++. Tool ini dikhususkan buat pengguna Synta...
-
Assalamu'alaikum Wr. Wb. Dikesempatan yang berbahagia ini ane mau share trit design terbaru ane. Silahkan langsung saja di sedo...
-
بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم Di postingan kali ini ane mau berbagi snippet sederhana di delphi untuk memutar file...
-
بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم Udah lama gak update postingan di blog. Banyak kesibukan di RL soalnya, mostly tugas-tu...
-
بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم Ada sebuah trik pada Windows yang bisa menampilkan pesan status disaat Windows melakukan...
-
Assalamu'alaikum Wr. Wb. Di kesempatan kali ini ane mau membahas sedikit tentang Deep Web. Belum banyak pengguna Internet yang menge...
Angki © 2015 - 2017. Diberdayakan oleh Blogger.
Posting Komentar