While-løkke problem

Tags:    c++ .net

Hej udviklere,

Jeg er lige startet på c/c++. Hvis i kigger på koden, har jeg det problem at den sidste while-løkke ikke bliver kørt af programmet. Det vil altså sige at jeg får 0 i antal byte. Begge while-løkker virker hver for sig, men ikke sammen. Den sidste løkke bliver hele tiden sprunget over og der gåes direkte til printf...

Er der nogen der har en løsning

på forhånd tak

Mvh Martin




#include <stdio.h>

int main()
{
char ind;
int taeller = 0;


while ((ind = getchar()) != EOF)
printf("%c", ind);
while (getchar() != EOF)
taeller++;
printf("%s%d%s\\n","Der var ", taeller, " byte i filen");
return 0;
}



8 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Der var nogle småting i din kode der ikke ville virke, neenstående kode virker.

Fold kodeboks ind/udKode 


Håber det var lidt i den retning du ønskede programmet skulle virke. Bemærj at jeg har ændret i din STOP betingelse. Du skal bare lige ændre den tilbage til EOF hvis det er hvad du skal bruge

(¯`·._.·[Brian Hvarregaard]·._.·´¯)

[Redigeret d. 19/05-03 08:38:22 af Brian Hvarregaard][Redigeret d. 19/05-03 08:39:19 af Brian Hvarregaard]



Hej udviklere,

Jeg er lige startet på c/c++. Hvis i kigger på koden, har jeg det problem at den sidste while-løkke ikke bliver kørt af programmet. Det vil altså sige at jeg får 0 i antal byte. Begge while-løkker virker hver for sig, men ikke sammen. Den sidste løkke bliver hele tiden sprunget over og der gåes direkte til printf...

Er der nogen der har en løsning

på forhånd tak

Mvh Martin




#include <stdio.h>

int main()
{
char ind;
int taeller = 0;


while ((ind = getchar()) != EOF)
printf("%c", ind);
while (getchar() != EOF)
taeller++;
printf("%s%d%s\\n","Der var ", taeller, " byte i filen");
return 0;
}


Den første while-løkke slutter når der ikke længere er noget input... hvorefter du i nr. 2 while løkke spørger om der er mere input... det har du jo lige konstateret i forrige løkke at der ikke er...




Den nemme løsning.

#include <stdio.h>

int main()
{
char ind;
int taeller = 0;

while ((ind = getchar()) != EOF)
{
printf("%c", ind);
taeller++;
}
printf("%s%d%s\\n","Der var ", taeller, " byte i filen");
return 0;
}

/Rybon



Hej

Jeg har kikket lidt på det og jeg tror at det er noget i denne stil du godt vile have:

Fold kodeboks ind/udKode 


Hvis det ikke passer til dit program må du lige forklare hvad du skal bruge det til, så kan jeg nok lave det lidt om så det kommer til at passe til dit program.



Hej udviklere,

Jeg er lige startet på c/c++. Hvis i kigger på koden, har jeg det problem at den sidste while-løkke ikke bliver kørt af programmet. Det vil altså sige at jeg får 0 i antal byte. Begge while-løkker virker hver for sig, men ikke sammen. Den sidste løkke bliver hele tiden sprunget over og der gåes direkte til printf...

Er der nogen der har en løsning

på forhånd tak

Mvh Martin




#include <stdio.h>

int main()
{
char ind;
int taeller = 0;


while ((ind = getchar()) != EOF)
printf("%c", ind);
while (getchar() != EOF)
taeller++;
printf("%s%d%s\\n","Der var ", taeller, " byte i filen");
return 0;
}



Hej Martin

Her er de kode du skal bruge

#include <stdio.h>

int main()

{

char ind;
int taeller =0;

while ((ind = getchar()) != EOF)
{
printf("%c", ind);
taeller++;
}
printf("%s%d", "Der var ", taeller);
printf("%s", " byte i filen");
return 0;
}



Hej udviklere,

Jeg er lige startet på c/c++. Hvis i kigger på koden, har jeg det problem at den sidste while-løkke ikke bliver kørt af programmet. Det vil altså sige at jeg får 0 i antal byte. Begge while-løkker virker hver for sig, men ikke sammen. Den sidste løkke bliver hele tiden sprunget over og der gåes direkte til printf...

Er der nogen der har en løsning

på forhånd tak

Mvh Martin




#include <stdio.h>

int main()
{
char ind;
int taeller = 0;


while ((ind = getchar()) != EOF)
printf("%c", ind);
while (getchar() != EOF)
taeller++;
printf("%s%d%s\\n","Der var ", taeller, " byte i filen");
return 0;
}


Ved ikke om det virker, men prøv at tilføje flg. i toppen af filen:
Fold kodeboks ind/udKode 


MH.

The-Freak

Livet er for kort til at kede sig.



umiddelbart ser det ud til at du aldrig når den anden while løkke da du ikke bruger tuborg { efter din while løkke. Det betyder reelt at din anden while løkke ikke er i scope med den første while løkke. Hvis du tilføjer tuborg tror jeg det virker dvs. Således:


Fold kodeboks ind/udKode 

Håber det kan klare det.

PS. Alt dit kode er ren C og ikke noget C++ (hvis ikke du skulle være klar over det)

(¯`·._.·[Brian Hvarregaard]·._.·´¯)[Redigeret d. 18/05-03 18:33:24 af Brian Hvarregaard]



umiddelbart ser det ud til at du aldrig når den anden while løkke da du ikke bruger tuborg { efter din while løkke. Det betyder reelt at din anden while løkke ikke er i scope med den første while løkke. Hvis du tilføjer tuborg tror jeg det virker dvs. Således:


Fold kodeboks ind/udKode 

Håber det kan klare det.

PS. Alt dit kode er ren C og ikke noget C++ (hvis ikke du skulle være klar over det)

(¯`·._.·[Brian Hvarregaard]·._.·´¯)[Redigeret d. 18/05-03 18:33:24 af Brian Hvarregaard]



Det har jeg prøvet, men så springer den bare den første løkke over og skriver en # i stedet for.


Mvh

Martin



t