Hallo zusammen,
habe ein Problem mit c++.
Möchte ein Programm schreiben das eine Zahl mit sieben bis neun Ziffern
einließt. Und sie dann in Dreiergruppen zusammengefasst ausgibt.
z.B.: Eingabe : 12345678
Ausgabe : 12_345_678
Hallo zusammen,
habe ein Problem mit c++.
Möchte ein Programm schreiben das eine Zahl mit sieben bis neun Ziffern
einließt. Und sie dann in Dreiergruppen zusammengefasst ausgibt.
z.B.: Eingabe : 12345678
Ausgabe : 12_345_678
Hallo
habe ein Problem mit c++.
Was hast Du denn schon versucht?
Möchte ein Programm schreiben das eine Zahl mit
sieben bis neun Ziffern einliest.
Von einer Datei - oder als Tastatureingabe -
oder von der Befehlszeile?
Und sie dann in Dreiergruppen zusammengefasst ausgibt.
z.B.: Eingabe : 12345678, Ausgabe : 12_345_678
Was Du möchtest, ist:
Grüße
CMБ
Hallo,
Die Zahl soll über die Tastatur eingegeben werden.
Das ist ja nicht das Problem.
Ich komme mit der Ausgabe nicht zurecht.
Ich bekomme die Zahl nicht getrennt oder nur die ersten drei zahlen
werden ausgegeben.
Die Zahl soll dann in Dreiergruppen getrennt mit ‚_‘ oder mit Leerzeichen ausgegeben werden.
Also so zum Beispiel: 12_345_678
Also genau was du meinst.
Gruß
knecht
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo knecht,
Die Zahl soll über die Tastatur eingegeben werden.
Das ist ja nicht das Problem.
Ich komme mit der Ausgabe nicht zurecht.
Ich bekomme die Zahl nicht getrennt oder nur
die ersten drei zahlen werden ausgegeben.
Schwer zu sagen; man müsste Deine bisherige Lösung
bzw. Dein Programm sehen. Kannst Du den Quelltext,
zwischen pre>
/pre> - Tags eingebunden, hier posten?
Davon ausgehend würde man die fertige Lösung
entwickeln.
Grüße
CMБ
Hallo,
Die Zahl soll über die Tastatur eingegeben werden.
Das ist ja nicht das Problem.
Ich komme mit der Ausgabe nicht zurecht.
Ich bekomme die Zahl nicht getrennt oder nur die ersten drei
zahlen
werden ausgegeben.Die Zahl soll dann in Dreiergruppen getrennt mit ‚_‘ oder mit
Leerzeichen ausgegeben werden.Also so zum Beispiel: 12_345_678
Also genau was du meinst.
Gruß
knecht
Hi,
eine Möglichkeit ware, die eingegebene Zahl mit in eine Zeichenkette umzuwandeln (in ANSI C mit sprintf, in MFC mit CString::Format). Dann kannst du in die Zeichen (Zahlen) auslesen und in eine zweite Zeichenkette mit den Separatoren schreiben.
Gruß Yel
Hallo,
Die Zahl soll über die Tastatur eingegeben werden.
Das ist ja nicht das Problem.
Ich komme mit der Ausgabe nicht zurecht.
Ich bekomme die Zahl nicht getrennt oder nur die ersten drei
zahlen
werden ausgegeben.Die Zahl soll dann in Dreiergruppen getrennt mit ‚_‘ oder mit
Leerzeichen ausgegeben werden.Also so zum Beispiel: 12_345_678
Also genau was du meinst.
Gruß
knecht
Hi Knecht,
jetzt hab ichs auch nochmal in Programmcode gepackt, wenn auch nur mit MFC.
CString intsep(int zahl)
{
CString str;
int len;
str.Format("%d",zahl);
len=str.GetLength();
str.Insert(len-3,"\_");
str.Insert(len-6,"\_");
return str;
}
Viel Spaß damit.
Yel
Hallo Yelmalio,
eine Möglichkeit ware, die eingegebene Zahl mit in eine
Zeichenkette umzuwandeln (in ANSI C mit sprintf, in MFC mit
CString::Format). Dann kannst du in die Zeichen (Zahlen)
auslesen und in eine zweite Zeichenkette mit den Separatoren
schreiben.
‚printf/sprintf‘ bzw. ‚Frameworkspezifisches‘ ist vielleicht
keine gute Idee, wenn es primär um „richtig C+±lernen“ geht
(obwohl s/printf sehr mächtig sind und ich sie gerne benutze).
Leider hat sich der O.P. nicht mehr gemeldet, es
wäre gut gewesen, mit ihm zusammen schrittweise
zu einer Lösung zu kommen
Grüße
CMБ
#include
#include
using namespace std;
const string& beautify(string& st, int n, int c)
{
int bck = static\_cast( st.length() );
for(int frnt=bck-n; frnt\>0; frnt-=n)
st.insert( frnt, 1, static\_cast(c) );
return st;
}
void main(void)
{
string s\_zahl;
cout \> s\_zahl;
cout
Hallo,
Danke für eure Mühe. Es war viel einfacher.
int n;
int z1, z2, z3;
cout>z;
z1 = n/1000000;
z2 = (n/1000)%1000;
z3 = n%1000;
printf("%3d %03d %03d\n", g1, g2, g3);
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo knecht
Danke für eure Mühe. Es war viel einfacher.
OK
int n;
int z1, z2, z3;cout>z;
z1 = n/1000000;
z2 = (n/1000)%1000;
z3 = n%1000;printf("%3d %03d %03d\n", g1, g2, g3);
Das ist also Dein Startpunkt. OK. Wenn Du einige
kleine Berichtigungen machst, kommt sogar richtiger
C+±Code raus
Bitte beim nächsten mal den Code vorher in einem
Compiler prüfen - und dann in pre> … /pre>-Tags
einschliessen, etwa so:
#include
#include
using namespace std;
void main(void)
{
int z, z1, z2, z3;
cout \> z;
z1 = z / 1000000;
z2 = (z / 1000) % 1000;
z3 = z % 1000;
cout Grüße
CMБ