我正在尝试将字符串与数字(双精度)值和文本连接起来。
我当前的代码:
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”。
我必须把double转换成char。
谢谢你的帮助。
发布于 2018-02-02 22:58:24
如果我没理解错的话,最好的方法是使用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);https://stackoverflow.com/questions/47960562
复制相似问题