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);