Re: Question de C++

Top Page

Reply to this message
Author: Patrick Dupre
Date:  
To: Edgar Bonet
CC: guilde
Subject: Re: Question de C++
Bonsoir Edgar,

Merci de me rappeler quelques regles. Je reprends d'anciens programmes!
Cependant je ne peux pas faire sans alarm:
extern int w_r_c(const char *fmt, ...);

car je fais dans la sous-routine (c)

double w_r_d (char *fmt, ...) {
  char *p ;
  do {
    for (p = fmt ; *p ; p++) {


J'ai essaye:
double w_r_d (char *const fmt, ...) {

Ce qui eveite les alarm dans la sous-routine mais qui laisse les memes
alarm dans la compilation du programme avec:

input_t = (char) w_r_c ("Type of signal: (P)ulse or (C)W (%c) ? ", input_t) ;

warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]


Il doit y avoir une solution !


===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre@???
 Laboratoire de Physico-Chimie de l'Atmosphère | |
 Université du Littoral-Côte d'Opale           | |
 Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
 189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
===========================================================================



> Sent: Sunday, March 08, 2015 at 7:30 PM
> From: "Edgar Bonet" <guilde@???>
> To: guilde <guilde@???>
> Subject: Re: Question de C++
>
> Salut !
>
> Patrick DUPRÉ a écrit :
> > warning: deprecated conversion from string constant to ‘char*’
> > [...]
> > extern int w_r_c (char *fmt, ...) ;
> > [...]
> > input_t = (char) w_r_c ("Type of signal: (P)ulse or (C)W (%c) ? ", input_t)
>
> Une chaîne de caractères explicite, comme "Type of signal..." n'est pas
> un tableau de char, mais un tableau de const char. Si ta fonction a
> vraiment besoin de changer son paramètre fmt (ce qui semble peu probable),
> il faut l'appeler en lui passant un tableau modifiable. Si ta fonction
> ne fait que lire sa chaîne de format, alors tu la déclares comme ceci :
>
>     extern int w_r_c(const char *fmt, ...);

>
> À+,
>
> Edgar.
>
>