Forum: Nybörjar hjälp med loop.

Forum huvudsida -> Programmering -> Nybörjar hjälp med loop.

Sidor: 1

Till botten

arkof 18:14 - 5:e Mars 2010 | Post #1
Medlem
Inlägg: 8


Skicka PM
Hej. Är som sagt nybörjare med cpp.
Satt och försökte göra en tickande klocka.

Fick den att funka genom att skriva så här:
  1. #include <iostream>
  2. #include <ctime>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. char stime[9];
  10.  
  11. int loop = 1;
  12.  
  13. while (loop <= 1000)
  14. {
  15. Sleep(10);
  16. _strtime_s (stime);
  17. system("cls");
  18. cout << stime;
  19. }
  20.  
  21. return 0;
  22. }


Men måste använda system("cls"); för att de inte ska
skrivas ut efter varandra, kan man göra detta på något annat sätt? Känns lite dumt att behöva rensa hela fönstret. Inte så praktisktSmiley






martin310 18:37 - 5:e Mars 2010 | Post #2
Medlem
Inlägg: 132


Skicka PM
Tror att det är enklst med system("cls");
Annars kan du alltid rita ut allt igen.

Annars kan man alltid Googla

-------------------------

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!





tobeco 21:09 - 5:e Mars 2010 | Post #3
Medlem
Inlägg: 13


Skicka PM
En grej som jag ser är att du kollar så att loop <= 1000, men vad jag ser så räknar du aldrig upp den och lopen kommer att gå tills man slår av den manuellt. Du skulle lika gärna kunna skriva while(true) eller while(1) istället om du ska ha en oändlig loop. Annars måste du köra loop++; för att räkna upp loop så att den hamnar över 1000 någon gång.

-------------------------
Less is more
Funktion framför designe!!!!!



kode 23:18 - 5:e Mars 2010 | Post #4
Medlem
Inlägg: 45


Skicka PM
Man kan skriva ut ett gäng backsteg () om man känner för det, istället. Har jag för mig, åtm.




arkof 10:52 - 6:e Mars 2010 | Post #5
Medlem
Inlägg: 8


Skicka PM
tobeco, jag vill att de ska vara en oändlig loopSmiley
kode, tack, funka braSmiley

  1. char stime[9];
  2. while (1)
  3. {
  4. Sleep(1000);
  5. _strtime_s (stime);
  6. cout << stime << "";
  7. }

Så funka bra för att ha en tickande klocka.
Sleep(1000) skulle ja tror reducerar cpu användningen.







martin310 09:43 - 7:e Mars 2010 | Post #6
Medlem
Inlägg: 132


Skicka PM
Sätt sleepen på typ 900, för om användaren kör krävande program samtidigt kanske klockan ser seg ut.

-------------------------

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!





arkof 10:12 - 7:e Mars 2010 | Post #7
Medlem
Inlägg: 8


Skicka PM
Finns de något sätt att få klockan att "tricka"
men ändå kunna tex skriva ut text under den,

tex:
  1. string namn;
  2. char stime[9];
  3. while (1)
  4. {
  5. Sleep(1000);
  6. _strtime_s (stime);
  7. cout << stime << "";
  8. }
  9.  
  10. cout << "Vad är ditt namn?";
  11. cin << namn;
  12. cout << "Hej " << namn << " !";


?
funkar ju inte med en oändlig loop, eller tex goto.





tobeco 21:47 - 7:e Mars 2010 | Post #8
Medlem
Inlägg: 13


Skicka PM
Jo det går att skriva ut och köra samtidigt. Om du lägger klockan och övriga programmet i varsin tråd så går det. Då får du två processer som skriver ut var efter de körs. Kan dock bli lite svårt att köra i ett terminalfönster utan att den andra utskrivna texten försvinner pga att klocktråden skriver så ofta. Man får ju lite problem med en gemsam resurs som kan bli knepig att lösa.

-------------------------
Less is more
Funktion framför designe!!!!!



Sidor: 1

Forum huvudsida -> Programmering -> Nybörjar hjälp med loop.
Atom feed

Du får inte posta i den här tråden | Till toppen