Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm zum umrechnen von bytes
Hi all
Ich habe erst vor kurzem mit c++ angefangen und wollte mal fragen ob mir einer mit dem code weiterhelfen kann:
#include <iostream.h>
int main()
{
long int Byte;
long int Kbyte;
long int Mbyte;
long int Gbyte;
cout << "gib eine bytezahl ein!\n";
cin >> Byte;
Kbyte =Byte/1024;
Mbyte =Kbyte/1024;
Gbyte =Mbyte/1024;
cout << Kbyte << " Kbyte oder" << " "<<Mbyte << " Mbyte oder" <<" " << Gbyte << " Gbyte" <<endl;
return 0;
}
das mit den kbyte stimmt noch manchmal aber mbyte und gbyte rechnet er nicht um kommt immers gleiche raus
An was ligt das?
Pclol
es muesste alles stimmen, nur zb bei 1.7 k kommt 1 raus weil er immer abrundet
Lord_Otter
28.08.2002, 09:44
Wenn du das nicht willst, verwende float.
Da sind auch Nachkommastellen erlaubt.
danke hilft mir schonmal sehr nur kann mir noch kurz einer erklären wie das mit float in meinem bsp. funktioniert?
danke
Pclol
StoreMaster
28.08.2002, 13:08
in diesem fall würde ich aber double nehmen wg. der genauigkeit. ansonsten gehts genauso wie in deinem beispiel.
int main()
{
double Byte;
double Kbyte;
double Mbyte;
double Gbyte;
cout << "gib eine bytezahl ein!\n";
cin >> Byte;
Kbyte =Byte/1024;
Mbyte =Kbyte/1024;
Gbyte =Mbyte/1024;
cout << Kbyte << " Kbyte oder" << " "<<Mbyte << " Mbyte oder" <<" " << Gbyte << " Gbyte" <<endl;
return 0;
}
StoreMaster
28.08.2002, 13:26
sorry, muss 2mal posten, weil beim editieren kein anhängen einer datei mehr möglich ist.
so siehts bei mir aus:
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
double Byte,
Kbyte,
Mbyte,
Gbyte;
if(this->Edit1->Text.Length() < 1)
this->Edit1->Text = "0";
Byte = this->Edit1->Text.ToDouble();
Kbyte = Byte/1024;
Mbyte = Kbyte/1024;
Gbyte = Mbyte/1024;
this->Edit2->Text = *new AnsiString(Kbyte);
this->Edit3->Text = *new AnsiString(Mbyte);
this->Edit4->Text = *new AnsiString(Gbyte);
}
lass dich nicht verwirren wg. __fastcall und TObject *Sender und so..... habs mit c++ builder von borland gemacht....
:mauer: Danke für die antworten ich blick zwar jetzt gar nichts mehr aber is ja auch egal.
Ich fang erst an mit C++ und hab noch fast keine ahnung aber weis einer von euch wos gute tuts für c++ gibt?
Danke
Pclol
hmm ich hab das mir grad nochmal durchgelesen und auch ein anderes buch herbeigezogen. nun bin ich soweit das er kommazahlen anzeigt aber ein bisschen wirr:
#include <iostream.h>
int main()
{
double Byte;
double Kbyte;
double Mbyte;
double Gbyte;
cout << "gib eine bytezahl ein!\n";
cin >> Byte;
Kbyte =Byte/1024;
Mbyte =Kbyte/1024;
Gbyte =Mbyte/1024;
cout << Kbyte << " Kbyte oder" << " "<<Mbyte << " Mbyte oder" <<" " << Gbyte << " Gbyte" <<endl;
return 0;
}
Wenn ich das Programm nun ausführe dann kommt das raus:
gib eine bytezahl ein!
99999999999999999
9.76563e+013 Kbyte oder 9.53674e+010 Mbyte oder
9.31323e+007 Gbyte
Press any key to continue
was stimmt da nicht?
Kann es sein das das Programm die variablen nicht richtig speichert?
@StoreMaster deinen 2ten Beitrag blick ich immer noch net..
Pclol
das is die wissenschaftliche schreibweise von der zahl..
is schon ganz richtig so, heißt nur das du das komma um 13 stellen nach rechts verschieben musst.
ich würd einfach mal ne kleinere zahl versuchen... 10000 oder so
aso und was kommas betrifft, so solltest du welche bekommen:
#include <iostream.h>
int main()
{
double Byte = 0.0;
double Kbyte= 0.0;
double Mbyte= 0.0;
double Gbyte= 0.0;
cout << "gib eine bytezahl ein!\n";
cin >> Byte;
Kbyte =Byte/1024;
Mbyte =Kbyte/1024;
Gbyte =Mbyte/1024;
cout << Kbyte << " Kbyte oder" << " "<<Mbyte << " Mbyte oder" <<" " << Gbyte << " Gbyte" <<endl;
return 0;}
StoreMaster
29.08.2002, 20:01
@Pclol
da ist nichts zu checken. ist nur eine veranschaulichung, wie die methode unter borland c++ builder mit dialogen ausschaut
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.