• 24.04.2024, 11:46
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Eingabe bei c++

Donnerstag, 6. Januar 2005, 19:08

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!!! :)

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 19:24

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.

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:04

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

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:14

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

Zitat von »Rotring«

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


Soviel ist uns allen klar ;)

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:21

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.

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:40

Quellcode

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 ???

Zitat von »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.

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:46

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 ;)

Quellcode

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.

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:51

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.

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:55

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

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:56

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!!!! :)

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:57

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

Re: Eingabe bei c++

Donnerstag, 6. Januar 2005, 20:58

Dank Tante Edit auch schell wieder ausgebessert.