WinFuture-Forum.de: Verzögerung In C - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Verzögerung In C


#1 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 22. April 2004 - 09:20

Hallo,

wie kann man in C eine Verzögerung programmieren? Ich möchte einen Text ausgeben, dann soll eine Verzögerung von 2 Sekunden stattfinden und dann eine weitere Textausgabe.

Ich habe gehört dass es da eine Art sleep-Befehl gibt, den aber leider nicht jeder Compiler unterstützt. ;)

Danke
0

Anzeige



#2 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 22. April 2004 - 09:32

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        sleep ( 2 );
}

das funktioniert mit dem gcc ;)

meine gcc version:

mo@xomo:~$ gcc -v
Lese Spezifikationen von /usr/lib/gcc-lib/i486-linux/3.3.3/specs
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread-Modell: posix
gcc-Version 3.3.3 (Debian 20040401)
I'm mó. mo's good twin.
0

#3 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 22. April 2004 - 09:42

Danke für die schnelle Antwort!

kannst du mir auch sagen wie man das unter Windows programmiert? Verwendet wird die Visual C++ Entwicklungsumgebung. Die kennt den sleep-Befehl leider nicht.
0

#4 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 22. April 2004 - 17:52

Du kannst doch die WinAPI sleep() verwenden, dazu musst du nur windows.h inkludieren:

#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
  cout<<"start"<<endl;
  Sleep(2000);
  cout<<"ende";	
  return 0;
}


VOID Sleep(DWORD milliseconds)
Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#5 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 23. April 2004 - 07:59

@Franz1299

Bist du dir sicher das ich das so eingeben muss? Da kommt nämlich ne Fehlermeldung:

Zitat

------------------Konfiguration: sleep - Win32 Debug--------------------
Linker-Vorgang läuft...
sleep.obj : error LNK2001: Nichtaufgeloestes externes Symbol _sleep
Debug/sleep.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

sleep.exe - 2 Fehler, 0 Warnung(en)



Wenn ich die Headerdatei "Windows" inkludiere ist doch das Programm nicht mehr "reines" DOS-kompatibel oder? Also ich mein ich kann das Programm nicht mehr im reinen DOS-Modus ausführen?

Sorry - bin C-Anfänger ... :lol:
0

#6 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 23. April 2004 - 09:46

Wenn du ein Win32-Projekt erstellst, dann sowieso nicht...
Welche Visual C++-Version hast du denn? Hast du irgendwie mit dem Libraries rumgepfuscht?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#7 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 23. April 2004 - 10:16

Wenn ich ein Win32-Projekt erstell dann gehts. Aber das ist eigentlich nicht Sinn der Sache. Das Programm sollte komplett in C (nicht in C++) und unter DOS ausführbar sein.

Ich hab die Version: Visual C++ 6.0. An den Libraries bzw. Headerdateien hab ich gar nix gemacht -> alles im Zustand wie frisch nach der Installation.

Gibt es keine andere Möglichkeit nen Zeitgeber zu programmieren?
0

#8 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 23. April 2004 - 10:35

<include stdlib.h>
_sleep(unsigned long);

mich sollte es aber eher wundern, wenn man mit VC++6 überhuapt noch DOS-Programme erzeugen könnte... ich denke eher du meinst Win32-Konsolenprogramme, da aber kannst du problemlos Win32-Calls verwenden. Im übrigen scheint mir, daß du vergessen hast, für die Win32-Sleep-Funktion ebenfalls die stdlib.h einzubinden.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#9 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 23. April 2004 - 10:59

OK - Super, funktionert! Es lag also am Unterstrich? :lol:
0

#10 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 23. April 2004 - 11:12

Nein, es liegt daran, daß Sleep() auf _sleep() verweist und du dank fehlendem Include diese Referenz nicht aufgelöst hattest. Mit stdlib.h ud windows.h im Include dürfte auch Sleep() problemlos funktionieren.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#11 Mitglied ist offline   DavUlb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 196
  • Beigetreten: 29. Januar 04
  • Reputation: 0

geschrieben 23. April 2004 - 11:18

OK - Wieder was dazugelernt. Auf jeden Fall danke für deine Antworten B)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0