• 19.08.2025, 20:44
  • Register
  • Login
  • You are not logged in.

 

Triniter

Senior Member

Eingabe bei c++

Thursday, January 6th 2005, 7:08pm

Hallo,
ich muss ein kleine Programm realisieren, dass mir die Prüfziffer für ISBN Nummern berechnet.
Das Programm ansich ist kein Problem, allerdings würde ich die Eingabe gerne etwas komfortabler gestallten. Bisher habe sie mit einer for-Schleife realisiert, die die einzelnen Elemente in ein Array schreibt. Jedoch muss ich so nach jeder einzelnen Zahl die Eingabe mit Return bestätigen.
Gibt es eine Möglichkeit, die Eingabe so zu realisieren, dass ich die gesammte Ziffer eingebe, danach einmal mit Return bestätige und dann trotzdem jede einzelne Stelle der Zahl an einer eigenen Stelle in einem Array abgespeichert wird?
Wenn es möglich ist, bitte Lösungen mit Beispielquellcode posten.
DANKE!!! :)

Eumel

God

Re: Eingabe bei c++

Thursday, January 6th 2005, 7:24pm

Deklariere ein Eingabearray: char input[11];
Führe die Eingabe mit cin durch: cin << input; (oder >> ^^)
dann kannste jedes Zeichen mit input[0] bis input[10] abrufen.

Dann gibts noch ne feine Funktion atoi(...); mit der du jeden Character in eine Integerzahl umwandeln kannst.

Wären jetzt reine Überlegungen...

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Rotring

Full Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:04pm

es muss auf jeden fall mal cin >> sein,,.,

Triniter

Senior Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:14pm

Ok, die Funktion ist soweit klar, aber was meinst du mit abrufen?

Quoted from "Rotring"

es muss auf jeden fall mal cin >> sein,,.,


Soviel ist uns allen klar ;)

Dragonclaw

God

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:21pm

es gäbe da auch noch cin.get(), damit kannst du eine zeichenfolge auf den bildschirm schreiben, und per schleife die einzelnen zeichen nacheinander einlesen, wenn ich mich recht erinnere
char zahl[1] = cin.get();
cin.get() nimmt auch leerzeichen etc mit

char zahl[11];
cout << "Zahl (11 Stellig) eingeben!" << endl;
cin >> zahl[0];
for (int i = 1; i < 11 ; i++)
{
cin >> zahl;
}
das könnte so laufen
Verwende keine sinnlose Gewalt. Hol einen größeren Hammer.

Triniter

Senior Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:40pm

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
#include <conio.h>

int main()
{
        char input[11];
        int isbn[11];
        int i=0;
        cin.get(input, 11);

        for(i=0; i < 10; i++)
                isbn[i]=atoi(&input[i]);

        for(i=0; i < 10; i++)
                cout << endl << "Zahl["<<i<<"] = " << isbn[i];

        getch();
        return 0;
}


Der Code würde zu folgender Ausgabe führen:

Eingabe: 1234567890

Zahl[0] = 1234567890
Zahl[1] = 234567890
Zahl[2] = 34567890
Zahl[3] = 4567890
Zahl[4] = 567890
Zahl[5] = 67890
Zahl[6] = 7890
Zahl[7] = 890
Zahl[8] = 90
Zahl[9] = 0

Und das passt ja irgendwie nicht so wie ich das will ???

Quoted from "Dragonclaw"

es gäbe da auch noch cin.get(), damit kannst du eine zeichenfolge auf den bildschirm schreiben, und per schleife die einzelnen zeichen nacheinander einlesen, wenn ich mich recht erinnere
char zahl[1] = cin.get();
cin.get() nimmt auch leerzeichen etc mit

char zahl[11];
cout << "Zahl (11 Stellig) eingeben!" << endl;
cin >> zahl[0];
for (int i = 1; i < 11 ; i++)
{
cin >> zahl;
}
das könnte so laufen


Dann müsste ich ja wieder nach jeder einzelnen Zahl die Eingabe mit Return bestätigen. Genau das will ich ja vermeiden.

Dragonclaw

God

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:46pm

nur zum verständnis:
du willst 1234567890 eingeben und dann ein char oder int array haben mit
char zahl[10]
zahl[1] = 1
zahl[1] = 2
...
zahl[9] = 0, oder?

bei cin bzw cin.get() und einem char als zielarraytyp nimmt sich cin bzw cin.get() nur ein zeichen, schreibt es, dann nimmt es das nächste etc

das wäre der code, auch lauffähig ;)

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;

void main()
{
char zahl[11];
cout << "Zahl (11 Stellig) eingeben!" << endl;
int i;
for (i = 0; i < 11 ; i++)
{
      cin >> zahl[i];       //einlesen
} 

for (i = 0; i < 11 ; i++)
{
      cout << zahl[i];    //ausgeben
} 
cout << endl;
}
Verwende keine sinnlose Gewalt. Hol einen größeren Hammer.

Triniter

Senior Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:51pm

Genau, ich will letztendlich ein int array mit 9 (hab mich vorhin mit der Anzahl vertan, spielt aber letztendlich keine Rolle) Membern haben, aber alle Member am Stück eingeben und erst nach der eingabe des letzten Datenelements die Eingabe mit Return bestätigen, also 9 zahlen tippen und dann einmal return.
Wie gesagt, wenns nicht geht sagen, dann lass ich es sein und mach es direkt über eine Schleife. Mir geht es hierbei lediglich um eine Vereinfachung der Programmhandhabung.

hurra

God

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:55pm

Io, so sollte das doch gehn:

int isbn[10];
char in[10];

cin>>in;
for(int i=0;i<10;i++)isbn=in[i]-'0';

cu hura

Triniter

Senior Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:56pm

Ja ich bin da nicht ganz so der hellste auf dem Gebiet Programmierung. Meine stärken liegen in der Systemadministration. von c++ versteh ich immer nur so viel, dass ich durch die Prüfung komm. Aber Problem gelöst.
DANKE!!!! :)

hurra

God

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:57pm

Schön, auch wenns kein Doppelpost ist :-* :P

Triniter

Senior Member

Re: Eingabe bei c++

Thursday, January 6th 2005, 8:58pm

Dank Tante Edit auch schell wieder ausgebessert.