[C/C++] 'usleep' was not declared
Résolu
FoX
-
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Après maintes recherches, je bloque sur une chose:
J'ai fais un programme il y a quelques temps sous Linux que j'aimerais reprendre sous windows, or Code::Blocks me trouve une erreur de type: 'usleep' was not declared in this scope.
Voilà le code, si cela peut vous aider:
J'ai tenté de mettre l'include <windows.h> en utilisant la fonction Sleep(), mais il me sort de nouvelles erreurs:
Je pense que là il n'arrive pas à lire le "f_video.h" ?
f_video.h
Même en incluant cette bibli dans les includes de C::B, cela n'y change rien.
Cela fait vraiment longtemps que je n'ai pas touché du C ... et je me sens un peu largué.
Merci d'avance pour votre aide,
Après maintes recherches, je bloque sur une chose:
J'ai fais un programme il y a quelques temps sous Linux que j'aimerais reprendre sous windows, or Code::Blocks me trouve une erreur de type: 'usleep' was not declared in this scope.
Voilà le code, si cela peut vous aider:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "f_video.h" int main(void){ unsigned int X, Y; /* Declaration des variables de coordonnées */ signed int dX, dY; /* Delta X et Delta Y, pour le déplacement de la balle */ char ball; /* Variable de la balle */ ball = 'O'; /* Code ASCII de O */ srand(time(NULL)); /* Définie un temps nul */ Clrscr(); /* Efface le contenu de l'écran */ /* Valeur aléatoire prise par X et Y */ X = 1+(int) ((80.0*rand())/(RAND_MAX+1.0)); Y = 1+(int) ((24.0*rand())/(RAND_MAX+1.0)); /* Valeur aléatoire prise par la dérivée de X et de Y */ dX = 1+(int) ((10.0*rand())/(RAND_MAX+1.0)); if (dX >= 5) { dX = 1; } else { dX = -1; } dY = 1+(int) ((10.0*rand())/(RAND_MAX+1.0)); if (dY >= 5) { dY = 1; } else { dY = -1; } /* La balle doit partir de la valeur aléatoire */ while (1) { Gotoxy(X,Y); /* Déplace le curseur en X et en Y */ printf("%c", ball); fflush(stdout); /* Forcer l'affichage */ Gotoxy(X,Y); printf(" "); /* Affiche un espace remplaçant l'ancien caractère */ if (X == 1) { dX = 1; } if (X == 80) { dX = -1; } if (Y == 1) { dY = 1; } if (Y == 24) { dY = -1; } X = X + dX; Y = Y + dY; usleep(500000); } return 0; }
J'ai tenté de mettre l'include <windows.h> en utilisant la fonction Sleep(), mais il me sort de nouvelles erreurs:
D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x43)||undefined reference to 'Clrscr()'| D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x16d)||undefined reference to 'Gotoxy(int, int)'| D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x1a3)||undefined reference to 'Gotoxy(int, int)'| ||=== Build finished: 3 errors, 0 warnings ===|
Je pense que là il n'arrive pas à lire le "f_video.h" ?
f_video.h
void Clrscr(); //efface le contenu de l'ecran void Gotoxy(int,int); // deplace le curseur en x et y void f_video_N(); // remet le mode video en normal void f_video_I(); // place la video en mode inverse
Même en incluant cette bibli dans les includes de C::B, cela n'y change rien.
Cela fait vraiment longtemps que je n'ai pas touché du C ... et je me sens un peu largué.
Merci d'avance pour votre aide,
3 réponses
Essaye de faire ca (sans garantie...) :
#include <unistd.h>
Mais c'est pratiquement sur un probleme de bibliothèque non importé ...
Tiens nous au courant si c'est ca !
#include <unistd.h>
Mais c'est pratiquement sur un probleme de bibliothèque non importé ...
Tiens nous au courant si c'est ca !