Hallo,
Ich versuche ein Programm zu schreiben, dass die Anzahl der eingegebenen Zeichen von getchar() zählt.
Leider verhält sich getchar unerwartet. Solange ich nicht str+Z eingebe läuft die Funktion weiter, das ist mir bekannt.
Der Zähler springt jedoch immer gleich 2 Stellen sobald ich ein Zeichen eingebe.
Weiß jemand wieso?
Danke im voraus
Hier der Code:
/*
* main.c
*
* Created on: 13.12.2009
* Author: yogi
*/
#include <stdio.h>
int getchar(void);
int main(void){
int i = 0;
int c;
/* vorerst ist die Schleife auf 50 Iterationen beschränkt */
for (i=1;i<=50;i=i+1)
{
c=getchar();
printf("\n dies ist Eingabe nr: %d",i-1); /*gibt den Schleifenzähler aus*/
if(c==-1){ /* Bedingung für Abbruch c=-1 bei STRG+Z*/
return 0;
}
}
return 0;
}
/* Die Anzahl der gezählten Zeilen ist doppel so hoch wie zu erwarten, wieso???*/
Ich versuche ein Programm zu schreiben, dass die Anzahl der eingegebenen Zeichen von getchar() zählt.
Leider verhält sich getchar unerwartet. Solange ich nicht str+Z eingebe läuft die Funktion weiter, das ist mir bekannt.
Der Zähler springt jedoch immer gleich 2 Stellen sobald ich ein Zeichen eingebe.
Weiß jemand wieso?
Danke im voraus
Hier der Code:
/*
* main.c
*
* Created on: 13.12.2009
* Author: yogi
*/
#include <stdio.h>
int getchar(void);
int main(void){
int i = 0;
int c;
/* vorerst ist die Schleife auf 50 Iterationen beschränkt */
for (i=1;i<=50;i=i+1)
{
c=getchar();
printf("\n dies ist Eingabe nr: %d",i-1); /*gibt den Schleifenzähler aus*/
if(c==-1){ /* Bedingung für Abbruch c=-1 bei STRG+Z*/
return 0;
}
}
return 0;
}
/* Die Anzahl der gezählten Zeilen ist doppel so hoch wie zu erwarten, wieso???*/