Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » getchar() liest enter mit?!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.05.2008, 20:16 Uhr
banshee




C++:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    char c;

    srand(time(NULL));

    do
    {
        printf("1) Neue Zufallsuhrzeit generieren\n");
        printf("2) Beenden\n");

        c = getc(stdin);

        while(c == 49)
        {
            printf("%.2d:%.2d\n", rand() % 24, rand() % 61);
            c = getchar();
        }
    } while(c != 50);

    return 0;
}



Dieses relativ selbsterklärende Stück Code hab ich gerade geschrieben und nach jeder Eingabe meinerseits wurden die beiden oberen printfs() einmal zu viel ausgegeben, was mich zu dem Schluss geführt hat, dass getchar() immer das Enter mitliest. Kann man das irgendwie umgehen?

PS: Ich hab auch nochmal eine andere Frage. Ich hab das Programm oben jemand anders geschickt, der dann die Fehlermeldung "Diese Anwendung konnte nicht gestartet werden. Überprüfen sie ihre Anwendungskonfiguration" oder so ähnlich bekommen hat. Ich habs dann einfach nochmal mit gcc kompiliert, weil ich dachte, dass es irgendwie an VC++ liegt, aber da kam der gleiche Fehler.
Hat jemand eine Ahnung, woran das liegt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.05.2008, 22:01 Uhr
öni



Der 2. Fehler liegt wahrscheinlich daran das du die fertige .exe jemanden geben wolltest der kein VC++ oder gcc hat somit musst du noch die nötigen libaries mit einbinden oder sonst irgendwas mitgeben, was das genau ist kann ich dir nicht sagen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.05.2008, 22:09 Uhr
0xdeadbeef
Gott
(Operator)


Wenn du alle whitespaces ignorieren willst,

C++:
scanf("%c", &c);


Wenn's nur um die Newline-Zeichen geht,

C++:
while((c = getchar()) == '\n');


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.05.2008, 10:38 Uhr
banshee




Zitat von öni:
Der 2. Fehler liegt wahrscheinlich daran das du die fertige .exe jemanden geben wolltest der kein VC++ oder gcc hat somit musst du noch die nötigen libaries mit einbinden oder sonst irgendwas mitgeben, was das genau ist kann ich dir nicht sagen.


Ja, im Falle VC++ macht das auch durchaus Sinn, weil ich da weiß, dass da so viel "Mist" mitgelinkt wird, aber gcc ist doch ein reiner C/C++-Compiler ohne diese ganzen Bibliotheken. Den musste ich auch nicht installieren und die exe wurde auch gleich mal von 40kb auf 9kb kleiner
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.05.2008, 17:16 Uhr
öni



Kleiner heist nicht das es dann laufen muss. Das was er mitverlinkt kann ja sein das das der andere Rechner gerade braucht. Der Borland Builder linkt im normalfall irgendeine dll nicht mit die man dann anhängen muss, über optionen, dadurch wird dann das Programm größer. Wie das auf gcc funktionier weiß ich net ich kenns nur auf dem BCB.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: