Я просто не понимаю. У меня есть две "основные переменные" address
и parameters
. address
- это константный символ, а parameters
- строка (массив символов), которая заполняется информацией.
Теперь очень странная вещь (по крайней мере для меня): после добавления метки времени к parameters
, address
очищено!
У кого-то есть идея, почему?
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void setOnlineStatus(char deviceName[30], bool deviceStatus, const char outputContent[50], int value, const char functionName[30], bool onlineRequestImmediately=true) {
const char address[128]= "https://api.arduino.myAddress.com";
char parameters[512] = "?secret=w2q3oifin23c&deviceName=";
cout << "Address: ";
cout << address << endl;
cout << "Parameters: ";
cout << parameters << endl;
strcat(parameters, deviceName);// +"&status="+deviceStatus+"&value="+value+"&time="+getTimestamp()+"&functionName="+functionName;
strcat(parameters, "&status=");
char tempDeviceStatus[1];
sprintf(tempDeviceStatus, "%d", deviceStatus);
strcat(parameters, tempDeviceStatus);
cout << "Address01: ";
cout << address << endl;
strcat(parameters, "&value=");
char tempValue[3];
sprintf(tempValue, "%d", (int) value);
strcat(parameters, tempValue);
cout << "Address02: ";
cout << address << endl;
strcat(parameters, "&functionName=");
strcat(parameters, functionName);
cout << "Address03: ";
cout << address << endl;
strcat(parameters, "&time=");
char tempTimestamp[10];
sprintf(tempTimestamp, "%d", 1234567890);
strcat(parameters, tempTimestamp); // this doesn't work neither: strcat(parameters, "1234567890");
cout << "Address04: ";
cout << address << endl; // output is empty!
strcat(parameters, "&message=");
strcat(parameters, outputContent);
cout << "Address05: ";
cout << address << endl; // output is empty!
cout << "Parameters: ";
cout << parameters << endl;
}
int main()
{
setOnlineStatus("testControl1", 1, "controlTurnedOff", 201, "toggleFans()");
}
Вот результат:
Address: https://api.arduino.myAddress.com
Parameters: ?secret=w2q3oifin23c&deviceName=
Address01: https://api.arduino.myAddress.com
Address02: https://api.arduino.myAddress.com
Address03: https://api.arduino.myAddress.com
Address04:
Address05:
Parameters: ?secret=w2q3oifin23c&deviceName=testControl1&status=1&value=201&functionName=toggleFans()&time=1234567890&message=controlTurnedOff