Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
29.09.10, 12:16
|
#1
|
Banned
Registriert seit: Sep 2010
Beiträge: 50
Bedankt: 2
|
C# Frage nicht Formulierbar
Hallo Leute,
so ich weiß nicht wie ich es schreiben soll.
Aber ich habe ein beispiel, wie es eindeutig wird.
Ich habe folgenden Quelltext, ist natürlich noch nicht fertig:
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int main ()
{
int k1,k2;
printf ("Bitte geben Sie die erste Koordinate ein: ( x/ x) ");
Wie kann ich das machen, dass ich bei der Eingabe im DOS fenster dann nur etwas eingeben kann, wo die beiden "x" sind. Ich möchte das so, dass die beiden "x" nicht zu sehen sind, sondern das man dort logischerweiße die 2 Koordinaten eingibt.
Und das bei scanf beide Zahlen EINZELND eingelesen werden. (Bspweiße als "k1" und "k2")
Ich hoffe es war etwas verstädnlich x)
Und danke für eure hilfen
|
|
|
29.09.10, 12:30
|
#2
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
#include <stdio.h>
#include <conio.h>
int main ()
{
int k1,k2;
char in;
printf ("Bitte geben Sie die erste Koordinate ein: (x/x) ");
in = getch();
k1 = atoi(in);
printf ("\rBitte geben Sie die erste Koordinate ein: (%d/x) ", k1);
in = getch();
k2 = atoi(in);
printf ("\rBitte geben Sie die erste Koordinate ein: (%d/%d) ", k1, k2);
return 0;
}
Ungetestet.
und nur in der lage jeweils eine Ziffer einzulesen.
btw, das da ist kein C# sondern C.
Du könntest über API funktionen auch den Curser neu positionieren und dann lesen. Das ist aber etwas schwieriger
|
|
|
29.09.10, 12:39
|
#3
|
Banned
Registriert seit: Sep 2010
Beiträge: 50
Bedankt: 2
|
Zitat:
Zitat von gosha16
#include <stdio.h>
#include <conio.h>
int main ()
{
int k1,k2;
char in;
printf ("Bitte geben Sie die erste Koordinate ein: (x/x) ");
in = getch();
k1 = atoi(in);
printf ("\rBitte geben Sie die erste Koordinate ein: (%d/x) ", k1);
in = getch();
k2 = atoi(in);
printf ("\rBitte geben Sie die erste Koordinate ein: (%d/%d) ", k1, k2);
return 0;
}
Ungetestet.
und nur in der lage jeweils eine Ziffer einzulesen.
btw, das da ist kein C# sondern C.
Du könntest über API funktionen auch den Curser neu positionieren und dann lesen. Das ist aber etwas schwieriger
|
Wow danke für die Antwort.
Funktioniert leider nicht
Fehler :`atoi' undeclared (first use this function)
Könntest du vllt noch ein wenig dazu sagen? würd das gerne verstehen
|
|
|
29.09.10, 12:43
|
#4
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
vergiss das stück code da oben, das endet eh in ner zugriffsverletzung.
PHP-Code:
#include <stdio.h> #include <conio.h> int main () { int k1,k2; printf ("Bitte geben Sie die erste Koordinate ein: (x/x) "); k1 = getch(); printf ("\rBitte geben Sie die erste Koordinate ein: (%c/x) ", k1); k2 = getch(); printf ("\rBitte geben Sie die erste Koordinate ein: (%c/%c) ", k1, k2); return 0; }
Was genau verstehst du denn nicht?
|
|
|
29.09.10, 12:48
|
#5
|
Banned
Registriert seit: Sep 2010
Beiträge: 50
Bedankt: 2
|
Zitat:
Zitat von gosha16
vergiss das stück code da oben, das endet eh in ner zugriffsverletzung.
PHP-Code:
#include <stdio.h>
#include <conio.h>
int main ()
{
int k1,k2;
printf ("Bitte geben Sie die erste Koordinate ein: (x/x) ");
k1 = getch();
printf ("\rBitte geben Sie die erste Koordinate ein: (%c/x) ", k1);
k2 = getch();
printf ("\rBitte geben Sie die erste Koordinate ein: (%c/%c) ", k1, k2);
return 0;
}
Was genau verstehst du denn nicht?
|
Danke geht.
Ich verstehe nicht, wieso man "%c" verwendet. Und die Lib "conio.h" kannte ich auch nicht.
Naja und getch auch.. aber das werde ich mal googlen.   
|
|
|
29.09.10, 12:50
|
#6
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
weil getch() den ASCII Code des eingegebenen Zeichens zurückgibt.
Verwendest du %d und der Nutzer gibt eine 1 ein steht dann an der stelle des x eine 49. Da das der ASCII Code für die 1 ist.
Und bitte keine Fullquotes. Vorallem nicht wenn wir hier abwechselnd schreiben.
|
|
|
29.09.10, 12:52
|
#7
|
Banned
Registriert seit: Sep 2010
Beiträge: 50
Bedankt: 2
|
Okay danke. Du hast mir echt geholfen.
Den rest werde ich mal googeln. Habe das aber jetzt eigentlich verstanden, ist ziemlich logisch.
Aber ein scanf ist überflüssig oder?
|
|
|
29.09.10, 12:58
|
#8
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
sozusagen. Mit scanf() wirst du das so wie du es haben willst wohl nicht hinbekommen. (ohne WinAPI oder curses Funktionen)
|
|
|
29.09.10, 13:03
|
#9
|
Banned
Registriert seit: Sep 2010
Beiträge: 50
Bedankt: 2
|
Zitat:
Zitat von gosha16
sozusagen. Mit scanf() wirst du das so wie du es haben willst wohl nicht hinbekommen. (ohne WinAPI oder curses Funktionen)
|
Habe es eben schon gemerkt. Wird ja unter %c aufgerufen. Von daher klappt das. So jetzt muss ich nur noch die Geradengleichung verstehen und meine Hausaufgaben sind TOP!
Vielen Dank nochmal
Könntest du mir vllt noch sagen, wie ich mit "if" einstellen kann, dass nur bei zahlen das programm weiter läuft?
|
|
|
29.09.10, 13:39
|
#10
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
du musst halt prüfen ob k1/k2 nen wert von 48 bis 57 enzhält. Wenn nicht wurde keine Ziffer eingegeben.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr.
().
|