Avatar billede offerlam Nybegynder
08. februar 2006 - 13:35 Der er 21 kommentarer

problem med for løkke

hola hombres

jeg sidder her med et program jeg skal have til at tælle op i en variable indtil der bliver trykket på en tast hvorefter variablens størelse bliver vist på skærmen.

dvs at des længere man ventere des størrer bliver tallet.

Jeg har prøvet mange forskellige kode muligheder og nedenfor er mit sidste bud, men det virker ikke.

HJÆLP!!!

-=KODE FØLGER=-

#include <stdio.h>

int main()

{
long int i = 1;

        for (i=1;i!=0; i++) //løkken køre uendeligt og tæller op
    {
    getchar();
    break;    //løkken bryder idet der trykkes på en tast
    }
   
    printf("%d\n", i);

return 0;
}
Avatar billede medions Nybegynder
08. februar 2006 - 13:40 #1
#include <stdio.h>

int main()

{
long int i = 1;

        for (;;) //løkken køre uendeligt og tæller op
    {
    getchar();
    break;    //løkken bryder idet der trykkes på en tast
    }
   
    printf("%d\n", i);

return 0;
}

Prøv sådan...

//>Rune
Avatar billede medions Nybegynder
08. februar 2006 - 13:41 #2
Ah, den skal oxo tælle op... så skal du gøre sådan her:

#include <stdio.h>

int main()
{
    long int i = 1;

    for (;;) //løkken køre uendeligt og tæller op
    {
    i++;
    getchar();
    break;    //løkken bryder idet der trykkes på en tast
    }
   
    printf("%d\n", i);

return 0;
}

//>Rune
Avatar billede jpk Nybegynder
08. februar 2006 - 13:46 #3
Det kan man ikke gøre sådan!

getchar blokerer jo indtil der kommer indput...
Avatar billede medions Nybegynder
08. februar 2006 - 13:46 #4
Men tror du ikke at det du vil er flg.:

#include <stdio.h>

int main()
{
    long int i = 0;

    for (;;) //løkken køre uendeligt og tæller op
    {
        i++;
        printf("%d\n", i);
        getchar();
    }
return 0;
}

//>Rune
Avatar billede offerlam Nybegynder
08. februar 2006 - 13:51 #5
først! tak for dit hurtige svar...sidder i skolen og arbejder med det nu nemlig.

overresket over din for (;;); viste ikke man kunne det.

det virker dog ikke...når jeg tester dit program kan den max tælle op til 2...og jeg ved at det skulle værer mere i millionerne. på min computer skal en forløkke køre ca 500.000.000 gange for ca at vare 1 sekund.

Jeg ved jeg at når det kommer til tid at jeg bare kan bruge timer.h men det er jo ikke sjovt ;).

har du evt et andet forslag eller rettelse?

MvH

Casper
Avatar billede offerlam Nybegynder
08. februar 2006 - 13:53 #6
dit 3ed forslag var heller ikke hvad jeg ledte efter...den skal ikke tæller op for hvergang jeg trykker en tast.

programmet skal bruges til kalibreing. Brugeren skal starte programmet venter i 10sekunder trykke på en tast også skal variablen med antal gange løkken kørte bruges til kalibreing af tid.

noget bedre?
Avatar billede morhan Novice
08. februar 2006 - 13:54 #7
afhængigt af din compiler, kan du prøve med kbhit

for(;;){
  if(kbhit()) break;
}
Avatar billede morhan Novice
08. februar 2006 - 13:55 #8
og den er givetvis defineret i <conio.h>
Avatar billede offerlam Nybegynder
08. februar 2006 - 13:56 #9
jeg bruger microsoft visual c++ og den kender ikke kbhit()
Avatar billede offerlam Nybegynder
08. februar 2006 - 13:57 #10
ah det er en conio ok...så kender den det...tester lige
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:02 #12
med morhan's forslag ser min kode sådan her ud nu

=-KODE FØLGER=-

#include <stdio.h>
#include <conio.h>

int main()
{
    long int i = 0;

    for(;;)
   
    {
        i++;
        if(kbhit()) break;
    }

    printf("%d\n", i);
    return 0;
}

=-KODE SLUT=-

den compiler fint men dos prompten lukker bare ned når jeg trykker på en test, istedet for at vise mig hvad der står i i.

gør jeg noget forkert eller er det ikke sådan det skal gøres?

har arbejdet med det her i flere timer nu!!! :)
Avatar billede jpk Nybegynder
08. februar 2006 - 14:05 #13
int main()
{
    long int i = 0;

    while(true)
   
    {
        i++;
        if(kbhit()) break;
    }

    printf("%d\n", i);
getchar();
    return 0;
}
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:08 #14
til din while(true) løkker siger min compiler

error C2065: 'true' : undeclared identifier

synes ikke det ligner jeg include en andne header?
Avatar billede jpk Nybegynder
08. februar 2006 - 14:10 #15
Du kan også bare bruge TRUE eller 1
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:13 #16
AHHH der var den supert jpk.

lige en note TRUE virkede ikke men 1 gjorde.

mange tak for hjælpen.

til jer andre der forsøgte...mange tak også ....overrekset over dne hurtige respons
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:15 #17
øhh jpk jeg ville genre have givet dig de 60 point, men den ville kun give til medions. kunne ikke skrive et andet navn eller vælge andre og da jeg valgte afvis kunne jeg slet ikke vælge nogen mere.
Avatar billede jpk Nybegynder
08. februar 2006 - 14:21 #18
Du kan bede flere om at give et svar, for så at dele pointene mellem dem.
(du skal bare vente med at acceptere, til alle har svaret)

morhan har, synes jeg, fortjent point for sit forslag med kbhit...
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:37 #19
nu har jeg fri, men kan lige tilføje at  nu kan jeg fx give dig points...men morhan har jo svaret men der står stadivæk kun dig...betyder det så at jeg bare skal vente?
Avatar billede jpk Nybegynder
08. februar 2006 - 14:39 #20
morhan har kun lavet en kommentar, ikke et svar...
Hvis du vil gi' ham point, skal du nok bede ham svare.
Avatar billede offerlam Nybegynder
08. februar 2006 - 14:57 #21
AH der er forskel...ok...nu er jeg med...mange tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester