PDA

Tam Sürümünü Görmek İçin : string hizalama


shark_hack
01/12/2005, 13:18
merhabalar.
veritabanından gelen değerleri bir string içerisinde topluyorum ve bunları yazdırıyorum. bu değerler yazdırılırken hepsi hizali bi şekilde listelenmiyor.
örneğin;
100 wasteiner 0.2 110
120 erdinger 0.1 587
123 fanta 0.3 854
gibi çıktı geliyor
ben bunların
100 wasteiner 0.2 110
120 erdinger 0.1 587
123 fanta 0.3 854

şeklinde sıralanmış olmasını istiyorum sonuçta her hane ayrı bir değişkenden geliyor. bunları nasıl sıralayabilirim???


acehreli
01/12/2005, 19:25
Hangi dilde yaziyorsun? string ile hangi turu kastediyorsun?

Eger C ile yaziyorsan veya C++ ile ve temel turlerle calisiyorsan printf ailesinden islevleri kullanabilirsin. Genisligi cikis duzeninde % karakterinden sonra verilen tamsayiyla belirtebilirsin.


#include <stdio.h>

int main()
{
printf("bir:%8d\n", 1);
printf("yuz:%8d\n", 100);
}


C++'ta cout ile stdout'u karistirmak iyi fikir degildir; ornegin cout ve stdout'a gonderilen karakterler cikista beklenmeyen sirada belirebilirler:

C++'ta C++ akimlariyla calismak onerilir; en azindan guvenli olduklari ve her turle calisabildikleri icin... Orada da setw veya width'i kullanabilirsin:


#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
cout << "bir:" << setw(8) << 1 << '\n';
cout << "iki:" << setw(8) << 100 << '\n';
}


C++ bu konuda printf tUrU hizalama ile karsilastirilinca geri kalir. Onun icin Boost'ta (boost.org) ve baska yerlerde bu eksikligi gideren kutuphaneler bulabilirsin:

http://www.boost.org/libs/format/doc/format.html

Tabii printf veya cout yerine sprintf veya ostringstream kullanarak "string"lere da yazdirilabilir. vs... :)

Ali