Pages: [1]   Go Down
Author Topic: conversion de int en char*  (Read 1033 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

voilà j'utilise une carte micro SD, en utilisant la librairie SDUfat http://www.blushingboy.net/p/SDuFAT/downloads/2/
j'arrive à y écrire des phrases, mais pas des chiffres.

J'ai beau essayer toutes sortes de conversions avec char, byte... j'ai toujours le message d'erreur :
println(const char[9], int) is ambiguous

donc finalement comment peut on vertir par exemple le nombre 100 en string ?

...une idée ...? :-[
Logged

Paris
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Opensource Hardware rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Tu as deux choix, soit tu utilise la fonction sprintf ou bien tu ecrit une fonction de conversion.

Voici l'exemple avec sprintf :

Code:
#include <stdio.h>

void setup()                    
{
 Serial.begin(9600);
}

void loop()                    
{
  char *str;
  sprintf(str, "%d", 42);
  Serial.print(str);
  delay(2000);
}

Voici une autre exemple avec une conversion :
Code:
void setup()                  
{
 Serial.begin(9600);
}

void   loop()
{
  int d;
  int nb = 42;

  d = 1;

  while(nb / d >= 10)
    d *= 10;

  while(d)
    {
      Serial.print(nb / d);
      nb %= d;
      d /= 10;
    }
  delay(2000);
}

Mes 0.02$
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...et bien , impeccable, çà compile smiley

en fait justement, quelle différence entre char *str; et char str;   ?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

humm... smiley-sad  j'ai parlé trop vite...
çà compile, oui..
avec serial.print affichage ok
mais avec SD.print (pour écrire dans la carte SD), rien n'est écrit ...

curieux ...?   :smiley
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le char *str sert à déclarer une chaîne de caractére et le char str un caractère.
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3010
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

char *str est un pointeur nommé str qui pointe sur une variable de type char. La variable en question peut être soit un élément unique soit un tableau. (ATTENTION il n'y a pas création de la variable char mais seulement du pointeur)

char str une variable de type char nommée str
« Last Edit: April 08, 2009, 03:33:24 am by fdufnews » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est ce que j'étais en train de comprendre...

donc lorsque j'écris
char *str;
char sprintf(str, "%d", 42);
SD.println("nom_fichier.txt", str);

      
str est encore vide...?

Comment convertir la valeur en string pour l'incorporer directement dans cette ligne ..?


(je vais essayer avec itoa, mais ce soir,  je n'ai pas la carte sous la main)
« Last Edit: April 08, 2009, 07:36:55 am by harima2 » Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3010
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non, sprintf créé un tableau de char et str pointe sur le début du tableau. Il ne faut pas écrire:
Quote
char sprintf(str, "%d", 42);
il ne faut pas le char devant.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

.... smiley-sad
..........mais curieusement la ligne :
sprintf(str, "%d", 42);
empèche la ligne :
SD.println("nom_fichier.txt", str); de fonctionner
      
Logged

Pages: [1]   Go Up
Jump to: