Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Programmieren in C Kernighan/ritchie

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
12.02.2003, 08:38 Uhr
~stacki
Gast


Hi,

Ich bin Anfänger (in C, hab schon in Basic und Delphi programmiert) und will mit dem oben genannten Buch C lernen.
Kann es sein das manche Programmbeispiele in diesem Buch Fehlerhaft sind?

z.B. folgendes Programm soll zeichen zählen:

#include <stdio.h>

/* Eingabezeichen zählen, Version 1 */
main()
{
long nc;

nc = 0;
while (getchar != EOF)
++nc;
printf("%ld\n", nc);
}

wie gesagt dieses Progrmm soll halt Eingabezeichen zählen aber es funktioniert weder unter Windows noch unter Linux. Wenn ich es ausführe und ich tippe z.B. abc ein, steht auf dem Bildschirm abc und nicht die anzahl der Zeichen. Wer kann mir Helfen?

ciao Nils
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.02.2003, 08:46 Uhr
virtual
Sexiest Bit alive
(Operator)


Tip mal Unter Linux am nach "ABC" CTRL-D, bzw unter Windows CTRL-Z
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2003, 10:55 Uhr
~0xdeadbeef
Gast


Vergiss die Klammern hinter getchar nicht, das ist eine Funktion. Sieht dann im Endeffekt so aus:

C++:
#include <stdio.h>

/* Eingabezeichen zählen, Version 1 */
main()
{
     long nc;

     nc = 0;
     while (getchar() != EOF) //Diese Zeile mein ich
             ++nc;
     printf("%ld\n", nc);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.02.2003, 11:35 Uhr
stacki



Hi,

@virtual

unter Linux beendet sich das Programm uns es steht irgendwas mit stopped da und unter Windows schließt sich das Dos Fenster.

ciao Nils
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.02.2003, 11:44 Uhr
virtual
Sexiest Bit alive
(Operator)


Dann hast Du unter Linux "CTRL-Z" gedrückt. Wie das unter Windows genau geht, kann ich nicht sagen, ich nutze solchen Schweinkram zu selten. Unter Linux solltest Du besser sogar noch ABC<ENTER><CTRL-D> drücken. Allerdings wird dann das <ENTER> mit als Zeichen gezählt.

Dein Programm wartet ja auf ein EOF. diese CTRL-? Tastenkombinationen sind genau dafür gedacht, ein EOF zu senden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.02.2003, 16:47 Uhr
stacki



Ok jetzt funktionierts,
habe anstelle einer long jetzt eine integer Variable verwendet, abc eingegeben und CTRL-D gedrückt.


ciao Nils
 
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: