problem z stdlib, pomocy !

0

nie dziala mi taki fragment kodu:

#include<stdlib.h>
#include<string.h>

void main()
{
   	float liczba_float;
	long liczba_long;
	char string[15],grupa_setek[3],grupa_tysiecy[3],grupa_milionow[3];
   	int dlugosc_liczby,i,j; 
	cout<<"Wpisz liczbe: ";
	cin>>liczba_float;
   	liczba_long=liczba_float;
	ltoa(liczba_long,string,14); // ta funkcja nie dziala !!
	cout<<string;
}

program wypisujac zawartosc zmiennej string wywala jakies smieci zamiast przydzielonego lancucha przez ltoa, dlaczego ?! Proszę kogos kto wie o odp, z gory dzięki

0

ltoa(liczba_long,string,14);

tam gdzie wpissujesz 14 to sie wpisuje w jakim sysytemie ma sie pojawic ta liczba
jezeli chcesz dziesietny to wpisz tam 10

tam nie wpisujeszz dlugosci tablicy :)

0

dzieki, ;p :d

0

mam jeszcze jeden problem z takim kodem:

for(i=dlugosc_liczby-4,j=2;i>=dlugosc_liczby-7;i--,j--)
	{
		grupa_tysiecy[j]=liczba_str[i];
	}

pętla ta powinna skopiowac 3 wartosci z liczba_str do grupa_tysiecy ale po wykonaniu jej i wypisaniu zawartosci grupa_tysiecy lancuch ten sklada sie z tych 3 liczb i jeszcze jakis innych (a rozmiar to grupa_tysiecy[3] ! wiec jak to mozliwe)
caly kod programu to:

void main()
{
   	float liczba_float;
	long liczba_long;
	char liczba_str[15],grupa_setek[3],grupa_tysiecy[3],grupa_milionow[3];
   	int dlugosc_liczby,i,j; 
	cout<<"Wpisz liczbe: ";
	cin>>liczba_float;
   	liczba_long=liczba_float;
	ltoa(liczba_long,liczba_str,10);
	dlugosc_liczby=strlen(liczba_str);
	for(i=dlugosc_liczby-4,j=2;i>=dlugosc_liczby-7;i--,j--)
	{
		grupa_tysiecy[j]=liczba_str[i];
	} 
	for(i=dlugosc_liczby-1,j=2;i>=dlugosc_liczby-4;i--,j--)
	{
		if(i>=0) grupa_setek[j]=liczba_str[i];
		else grupa_setek[j]='O';
	}
	//for(i=dlugosc-liczby
    cout<<grupa_tysiecy<<"   "<<grupa_setek;

}
0

bo musisz ciag literek zakonczyc zerem... bo program wyswietli Ci te trzy plus cos az napotka zero '\0' (null-terminated string) wiec... deklaracja grupa_tysiecy : char grupa_tysiecy[4];

a potem w kodzie:

for(....)
{
...
}
grupa_tysiecy[3]='\\0';

i siup :-P

0

zrobilem tak jak mówisz i jest dalej to samo, dalej wywala smieci

1 użytkowników online, w tym zalogowanych: 0, gości: 1