14. marts 2005 - 20:14Der er
23 kommentarer og 1 løsning
Kode udskriver ingenting!
#include <stdio.h>
main(){
int c, i, nwhite, nother; int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i) ndigit[i] = 0;
while ((c = getchar()) != EOF) if (c >= '0' && c <= '9') ++ndigit[c-'0']; else if (c == ' ' || c == '\n' || c == '\t') ++nwhite; else ++nother;
printf("digits ="); for (i = 0; i < 10; ++i) printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
}
Efter jeg har kompileret ovenståden kode kan jeg køre en .exe fil. Denne fil skulle udskrive hvor mange gange de forskellige tal opstår, men der sker ikke noget hvis man fx skriver:
Prøv at putte en getchar(); ind til slut. Kompiler og køre programmet igen. Skriv nogle tegn efterfulgt af CTRL+D (og/eller CTRL+Z). Så skulle den gerne skrive noget. Du afslutter så ved at trykke enter.
Når jeg trykker CTRL+D eller CTRL+Z så lukker vinduet bare. Jeg kan stadig ikke få den til at udskrive noget som helst...Skal jeg prøve at installere en anden kompiler end den der kommer med Cygwin?
Ok nu har jeg indsat getchar(); som det sidste i main funktionen og rigtigt nok så udskriver den det ønskede efter jeg trykker CTRL+Z.
Men hvad er forklaringen lige på dette? Og hvordan skulle man lige have gættet sig frem til det? Hvad er forskellen på at bruge CTRL+Z og CTRL+D (Bortset fra at CTRL+D ikke medfører at der bliver udskrevet noget).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.