Problem beim zahlenausgeben mit eingabefeldern
-
Hi, ich habe ein Problem mit dem einlesen von Zahlen, was auf der Konsole funktioniert
geht bei visual c++ mit mfc nicht mehr. Ich habe ein Fenster gebaut mit 4 Eingabefeldern und einem button.
1 Eingabefeld wird benutzt um werte einzulesen und auf den anderen 3 feldern sollen diese Werte wieder ausgegeben werden. Ich habe nur das Problem, das der wert, den ich eingebe auf allen 3 feldern ausgegeben wird. Was ich will ist, 3 unterscheidliche werte von einem
textfeld nacheinander einlesen und dann in 3 verschiedene Felder ausgeben.Kann mir bitte jemnd sagen was ich falsch gemacht habe?
zum code:
Mit dem klassenassistent habe ich folgende Variablen angelegt.
die alle vom typ int sind, da ich ja ganze Zahlen einlesen will.m_ein, m_aus1,m_aus2,m_aus3
Alle variablen haben ntürlich unterscheidliche IDs, da sie ja zu
unterscheidlichen Eingabefeldern gehören.void CEinlesenDlg::OnButton1() { UpdateData(TRUE); // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen int feld[3],i=0; while (i<3) { feld[i]=m_ein; //hier müsste der fehler sein, denn es wird nur eine Zahl eingelesen i++; } m_aus1=feld[0]; m_aus2=feld[1]; m_aus3=feld[2]; //zur ausgabe UpdateData(FALSE); }
-
-
Im Array feld[] werden die Werte immer von einer Varaiablen eingelesen. Deshalb sind im Array dann immer die selben Werte.
-
danke euch beiden, aber verstanden habe ich es leider immer noch nicht.
@ toosten, wie ist das gemeint, soll ich das ganze buch lesen?
@jfuechsl wie müsste das einlesen denn dann aussehen?
Ich brauche doch wohl für 3 werte keine verketette liste?
-
Hi,
nicht unbedingt aber wäre doch mal ne Überlegung wert. :pAlles Quatsch, du könntest es z.B. so machen:
void CEinlesenDlg::OnButton1() { UpdateData(TRUE); switch(i_globaleVarible) //i_globaleVarible eine globale integer Variable { case 1: m_aus1=m_ein; i_globaleVarible++; //m_aus3=m_aus2=0; //falls du immer alle Variablen auf Null setzen willst wenn du eine neue Dreifolge eingibst break; case 2: m_aus2=m_ein; i_globaleVarible++; break; case 3: m_aus3=m_ein; i_globaleVariable=1; break; }//end of switch UpdateData(FALSE); }
Ist sicherlich nicht die schönste Form, da du dreimal auf den
Button drücken musst, um die verschiedenen Werte anzeigen zu
lassen.Tschau Gartenzwerg
-
Danke, das werde ich mal so ausprobieren, ich wollte es aber so, das man 3 mal drücken muss.
-
also das Problem hat sich erledigt,Danke. jetzt habe ich aber ein neues,
Ich will einem staatisches textfeld vom Typ CString ein integer wert zuweisen.
In ansi c könnte man das ja casten, aber bei vc++ geht das irgendwie nichtCString zahl; zahl=(CString)m_ein1;//ich will int nach cstring casten m_textout=zahl; //und dann ausgeben
m_ein1 ist eine variable vom typ int
Habt ihr ne idee?
-
int i = 1; CString string; string.Format("%d", i); // wie bei printf
-
Original erstellt von zabarax:
**danke euch beiden, aber verstanden habe ich es leider immer noch nicht.
@ toosten, wie ist das gemeint, soll ich das ganze buch lesen?
**Sorry, Tag 2
-
danke ghost, ich hatte das shcon mal irgendwo gesehen aber vergessen,
Danke auch toosten, ich werde mir dne tag2 anschauen