Programmatin langage c dev c++

Fermé
vialhocima Messages postés 28 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 15 août 2009 - 3 févr. 2009 à 20:18
vialhocima Messages postés 28 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 15 août 2009 - 4 févr. 2009 à 21:23
Bonjour,
je prepare un mini projet en programmation en langage c
c'est la simulatin du jeu mastermind en langage c
mon pc est windows vista alors le turbo c++ ne sy installe pas
je travalle donc avec le dev c++
mais le pb c'est que je ne connais pas toutes les bibliotheque de cet environnemnt
ce dont j'aii besoin precisement c'est les fonctions qui font appels aux couleurs en dev (en turbo c'est cprintf),et je cherche egalement la fonction equivalente a "random" et" randomize" qui font appel aux entiers aleatoirement.
si vous connaissez ces fonctions ou bien un site web qui pourrait m'etre utile dans ce sens alors, je vous prie n'hesitez pas a me repondre
j'attendrai vos messages avec impatience et merci d'avance.
A voir également:

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 févr. 2009 à 17:10
j'ai ça :
conio.c
/* A conio implementation for Mingw/Dev-C++.
 *
 * Written by:
 * Hongli Lai <hongli@telekabel.nl>
 * tkorrovi <tkorrovi@altavista.net> on 2002/02/26. 
 * Andrew Westcott <ajwestco@users.sourceforge.net>
 *
 * Offered for use in the public domain without any warranty.
 */

#ifndef _CONIO_C_
#define _CONIO_C_

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <windows.h>
#include <string.h>
#include "conio.h"

#ifdef __cplusplus
extern "C" {
#endif

static int __BACKGROUND = BLACK;
static int __FOREGROUND = LIGHTGRAY;


void
clrscr ()
{
    DWORD written;

    FillConsoleOutputAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
      __FOREGROUND + (__BACKGROUND << 4), 2000, (COORD) {0, 0},
      &written);
      FillConsoleOutputCharacter (GetStdHandle
      (STD_OUTPUT_HANDLE), ' ',
      2000, (COORD) {0, 0}, &written);
    gotoxy (1, 1);
}


void
clreol ()
{
    COORD coord;
    DWORD written;
    CONSOLE_SCREEN_BUFFER_INFO info;

    GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE),
      &info);
    coord.X = info.dwCursorPosition.X;
    coord.Y = info.dwCursorPosition.Y;

    FillConsoleOutputCharacter (GetStdHandle (STD_OUTPUT_HANDLE),
      ' ', info.dwSize.X - info.dwCursorPosition.X, coord, &written);
    gotoxy (coord.X, coord.Y);
}


void
delline()
{
    COORD coord;
    DWORD written;
    CONSOLE_SCREEN_BUFFER_INFO info;

    GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE),
      &info);
    coord.X = info.dwCursorPosition.X;
    coord.Y = info.dwCursorPosition.Y;

    FillConsoleOutputCharacter (GetStdHandle (STD_OUTPUT_HANDLE),
      ' ', info.dwSize.X * info.dwCursorPosition.Y, coord, &written);
    gotoxy (info.dwCursorPosition.X + 1,
    info.dwCursorPosition.Y + 1);
}


int
_conio_gettext (int left, int top, int right, int bottom,
  char *str)
{
    int i, j, n;
    SMALL_RECT r;
    CHAR_INFO buffer[25][80];

    r = (SMALL_RECT) {left - 1, top - 1, right - 1, bottom - 1};
    ReadConsoleOutput (GetStdHandle (STD_OUTPUT_HANDLE),
      (PCHAR_INFO) buffer, (COORD) {80, 25}, (COORD) {0, 0}, &r);

    lstrcpy (str, "");
    for (i = n = 0; i <= bottom - top; i++)
    for (j = 0; j <= right - left; j++)
    {
        str[n] = buffer[i][j].Char.AsciiChar;
        n++;
    }
    str[n] = 0;
    return 1;
}


void
gotoxy(int x, int y)
{
  COORD c;

  c.X = x - 1;
  c.Y = y - 1;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}


void
puttext (int left, int top, int right, int bottom, char *str)
{ 
    int i, j, n;
    SMALL_RECT r;
    CHAR_INFO buffer[25][80];

    memset (buffer, 0, sizeof (buffer));
    r = (SMALL_RECT) {left - 1, top - 1, right - 1, bottom - 1};

    for (i = n = 0; i <= bottom - top; i++)
    for (j = 0; j <= right - left && str[n] != 0; j++)
    {
        buffer[i][j].Char.AsciiChar = str[n];
        buffer[i][j].Attributes = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
        n++;
    }

    WriteConsoleOutput (GetStdHandle (STD_OUTPUT_HANDLE),
      (CHAR_INFO *) buffer, (COORD) {80, 25},
      (COORD) {0, 0}, &r);
}


void
_setcursortype (int type)
{
    CONSOLE_CURSOR_INFO Info;

    Info.dwSize = type;
    SetConsoleCursorInfo (GetStdHandle (STD_OUTPUT_HANDLE),
      &Info);
}


void
textattr (int _attr)
{
    SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), _attr);
}


void
textbackground (int color)
{
    __BACKGROUND = color;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
      __FOREGROUND + (color << 4));
}


void
textcolor (int color)
{
    __FOREGROUND = color;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
      color + (__BACKGROUND << 4));
}


int
wherex ()
{
    CONSOLE_SCREEN_BUFFER_INFO info;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
    return info.dwCursorPosition.X + 1;
}


int
wherey ()
{
    CONSOLE_SCREEN_BUFFER_INFO info;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
    return info.dwCursorPosition.Y + 1;
}


#ifdef __cplusplus
}
#endif

#endif /* _CONIO_C_ */
et ça : conio.h
/* A conio implementation for Mingw/Dev-C++.
 *
 * Written by:
 * Hongli Lai <hongli@telekabel.nl>
 * tkorrovi <tkorrovi@altavista.net> on 2002/02/26. 
 * Andrew Westcott <ajwestco@users.sourceforge.net>
 *
 * Offered for use in the public domain without any warranty.
 */

#ifndef _CONIO_H_
#define _CONIO_H_


#include <stdio.h>

#ifdef __cplusplus
extern "C" {
#endif

#define BLINK 0

typedef enum
{
    BLACK,
    BLUE,
    GREEN,
    CYAN,
    RED,
    MAGENTA,
    BROWN,
    LIGHTGRAY,
    DARKGRAY,
    LIGHTBLUE,
    LIGHTGREEN,
    LIGHTCYAN,
    LIGHTRED,
    LIGHTMAGENTA,
    YELLOW,
    WHITE
} COLORS;


#define cgets	_cgets
#define cprintf	_cprintf
#define cputs	_cputs
#define cscanf	_cscanf
#define ScreenClear clrscr

/* blinkvideo */

void clreol (void);
void clrscr (void);

int _conio_gettext (int left, int top, int right, int bottom,
                    char *str);
/* _conio_kbhit */

void delline (void);

/* gettextinfo */
void gotoxy(int x, int y);
/*
highvideo
insline
intensevideo
lowvideo
movetext
normvideo
*/

void gotoxy(int x, int y);

void puttext (int left, int top, int right, int bottom, char *str);

// Screen Variables

/* ScreenCols
ScreenGetChar
ScreenGetCursor
ScreenMode
ScreenPutChar
ScreenPutString
ScreenRetrieve
ScreenRows
ScreenSetCursor
ScreenUpdate
ScreenUpdateLine
ScreenVisualBell
_set_screen_lines */

void _setcursortype (int type);

void textattr (int _attr);

void textbackground (int color);

void textcolor (int color);

/* textmode */

int wherex (void);

int wherey (void);

/* window */



/*  The code below was part of Mingw's conio.h  */
/*
 * conio.h
 *
 * Low level console I/O functions. Pretty please try to use the ANSI
 * standard ones if you are writing new code.
 *
 * This file is part of the Mingw32 package.
 *
 * Contributors:
 *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
 *
 *  THIS SOFTWARE IS NOT COPYRIGHTED
 *
 *  This source code is offered for use in the public domain. You may
 *  use, modify or distribute it freely.
 *
 *  This code is distributed in the hope that it will be useful but
 *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 *  DISCLAMED. This includes but is not limited to warranties of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * $Revision: 1.4 $
 * $Author: hongli $
 * $Date: 2002/04/26 19:31:25 $
 *
 */

char*	_cgets (char*);
int	_cprintf (const char*, ...);
int	_cputs (const char*);
int	_cscanf (char*, ...);

int	_getch (void);
int	_getche (void);
int	_kbhit (void);
int	_putch (int);
int	_ungetch (int);


int	getch (void);
int	getche (void);
int	kbhit (void);
int	putch (int);
int	ungetch (int);


#ifdef __cplusplus
}
#endif

#endif /* _CONIO_H_ */

Mais comme tu voi il manque des fonctions. a toi de trouver sur le net ce qu'il manque.
3
vialhocima Messages postés 28 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 15 août 2009 2
4 févr. 2009 à 21:23
merci charsnipeur infiniment
les programmes que tu viens de m'envoyer me seront un point de depart interessant.
@+
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
3 févr. 2009 à 21:48
Salut,
Ce n'est pas l'environnement de développements qui détermine les bibliothèques du C mais le C lui-même.
Donc que tu programmes avec DevC++, Turbo C, code::blocks etc, tu as les mêmes fonctions C. Après, il se peut que l'IDE donne d'autres fonctions, mais elles ne sont pas standards et ne doivent pas être utilisées.
Un petit tuto : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c

Sinon, si tu veux savoir toutes les fonctions, tu ouvres tes fichiers .h ;). Ils contiennent les prototypes.

Cdlt
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 févr. 2009 à 09:00
Salut.
à fiddy : Turbo C++ de borland est assez vieux et était plutôt orienté console. Il y a dedans pas mal de fonctions C à la fois, très pratiques très utilisés et pas standard qui permettent de gérer la console (couleur, positionnement du curseur etc.). En général, ces fonctions viennent de conio.h et permettent de faire facilement un programme console convivial et jolie. Je pense qu'elle ne sont pas conservé pour des raison de compatibilité.

les fonctions standard en C pour l'aléatoire, c'est rand() et randomize(), mais il faut inclure le bon fichier pour les appeler (surement stdlib.h). Pour les couleurs, je n'ai pas de solution. Tu peux toujours essayé de récupérer les sources du turbo C, et de les compiler avec gcc (le compilateur de DevCpp). Je l'avais fait, mais ce n'est pas évident.
0
vialhocima Messages postés 28 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 15 août 2009 2
4 févr. 2009 à 16:52
je vous remercie tous les deux pour vos reponse, c'est tres gentil de votre part
a char sniper, tu viens de dire que pour les couleurs tu as pris les codes sorces de turbo c et les a compiller avec gcc
stp , veux tu bien expliquer davantage en detaillant et merci d'avance
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
4 févr. 2009 à 12:27
@ Char Snipeur
Il y a dedans pas mal de fonctions C à la fois, très pratiques très utilisés et pas standard
Oui, je suis d'accord. Mais conio.h n'est pas propre à turboC++. Et puis ce n'est pas portable.


Sinon, les fonctions pour l'aléa : c'est srand pour initialiser la graine et rand() pour avoir une valeur pseudo-aléatoire.
Par exemple :
#include <time.h>
#include <stdlib.h>
srand(time(NULL)); //permet d'initialiser la graine en se basant sur time dont la granularité est des secondes.
rand(); //pour avoir la valeur pseudo-aléatoire entre 0 et RAND_MAX.


Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 févr. 2009 à 14:22
Oups, en effet, randomize c'était une réminiscence de turbo C et de turbo pascal...
srand en C standard.
conio n'est pas propre à Borland ? qui d'autre l'utilise, je ne l'ai vu que là.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
4 févr. 2009 à 17:55
conio.h était utilisé par les compilateurs MS-DOS. A l'origine, c'était même implémenté par Visual C++ (je ne sais plus si c'est toujours le cas). En tout cas, conio.h est plutôt utilisé pour les applications DOS et ils se trouvent que les consoles windows ont un minimum de compatibilité. D'où l'utilisation par turbo C++ par exemple, mais ce n'est pas propre à eux.
0