CVI Double to Char

Я пытаюсь объединить строки с числовыми (двойными) значениями и текстами.

Мой текущий код:

char nameLed[256];      //Nom de la led
char colorLed[256];     //La couleur de la led
char I_directLed[100];      //L'intensité direct que peut supporter la led
double U_directLed;     //La tension direct que peut supporter la led
char commentLed[256];   //Le commentaire sur la led
char chaineSaveLed[1000];//Chaine concaténé

GetCtrlVal(panel, TABPANEL_1_ST_Name, nameLed);             //Panel > Tab Champ
GetCtrlVal(panel, TABPANEL_1_ST_Color, colorLed);           //Panel > Tab Champ
GetCtrlVal(panel, TABPANEL_1_I_Direct_Led, &I_directLed);   //Panel > Tab Champ
GetCtrlVal(panel, TABPANEL_1_U_Led_Direct, &U_directLed);   //Panel > Tab Champ
GetCtrlVal(panel, TABPANEL_1_TXT_Comment, commentLed);      //Panel > Tab Champ

//Créer la chaine à enregistrer au format CSV
//Concaténation de chaine
strcat (chaineSaveLed, nameLed);
strcat (chaineSaveLed, ",");
strcat (chaineSaveLed, colorLed);
strcat (chaineSaveLed, ",");
strcat (chaineSaveLed, I_directLed);
strcat (chaineSaveLed, ",");
strcat (chaineSaveLed, U_directLed);
strcat (chaineSaveLed, ",");
strcat (chaineSaveLed, commentLed);
strcat (chaineSaveLed, "/n");

printf ("%s\n", chaineSaveLed);

Моя проблема на "I_directLed" и "U_directLed".

Я должен преобразовать двойное в символ.

Спасибо за вашу помощь.

1 ответ

Если я правильно понимаю, что вы имеете в виду, лучший способ сделать это - использовать sprintf(). Это позволяет вам записывать в строку и форматировать ее, подобно тому, как работает printf (). Так, например, вы можете заменить свой код на:

//Define variables
char nameLed[256];   
char colorLed[256];    
char I_directLed[100];  
double U_directLed;   
char commentLed[256];  
char chaineSaveLed[1000];

//Get value from GUI
GetCtrlVal(panel, TABPANEL_1_ST_Name, nameLed);             
GetCtrlVal(panel, TABPANEL_1_ST_Color, colorLed);          
GetCtrlVal(panel, TABPANEL_1_I_Direct_Led, &I_directLed);  
GetCtrlVal(panel, TABPANEL_1_U_Led_Direct, &U_directLed);   
GetCtrlVal(panel, TABPANEL_1_TXT_Comment, commentLed);    

//Concatenates all of the given variables into the string chainSaveLed
sprintf(chaineSaveLed,"%s,%s,%s,%lf,%s\n",nameLed, colorLed, I_directLed, U_directLed, commentLed);

//Print output
printf ("%s\n", chaineSaveLed);
Другие вопросы по тегам