本文整理汇总了C++中StdString::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ StdString::empty方法的具体用法?C++ StdString::empty怎么用?C++ StdString::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StdString
的用法示例。
在下文中一共展示了StdString::empty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OutputToFile
/**
* 計測データをファイルへ追記出力します。
*/
void OutputToFile(const SYSTEMTIME &currTime, double temp, double humid)
{
if(outputFilename_.empty()){
return;
}
char str[512];
const int size = std::sprintf(
str, "%04d/%02d/%02d %02d:%02d:%02d,%lf,%lf\r\n",
currTime.wYear,
currTime.wMonth,
currTime.wDay,
currTime.wHour,
currTime.wMinute,
currTime.wSecond,
temp,
humid);
HANDLE hFile = ::CreateFile(outputFilename_.c_str(), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
::SetFilePointer(hFile, 0, NULL, FILE_END);
DWORD written = 0;
::WriteFile(hFile, str, size, &written, NULL);
::CloseHandle(hFile);
}
示例2: OutputToHTTP
/**
* 計測データをHTTPのGETメソッドのパラメータとして出力します。
* http://example.jp/record.cgi?temp=25.543&humid=45.123 のような形式でアクセスします。
*/
void OutputToHTTP(const SYSTEMTIME &currTime, double temp, double humid)
{
if(outputHTTPURL_.empty()){
return;
}
///@todo ポート指定できるようにする。
///@todo 先頭に http:// と入れても大丈夫なようにする。
const StdString::size_type firstSlashPos = outputHTTPURL_.find_first_of('/');
const StdString destHostName = (firstSlashPos != StdString::npos) ? outputHTTPURL_.substr(0, firstSlashPos) : outputHTTPURL_;
const StdString destURL = (firstSlashPos != StdString::npos) ? outputHTTPURL_.substr(firstSlashPos) : "/";
struct Local
{
static bool connectToHost(SOCKET &sock, const char *hostname)
{
sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(80);
server.sin_addr.S_un.S_addr = inet_addr(hostname);
if(server.sin_addr.S_un.S_addr == 0xffffffff) {
hostent *host = gethostbyname(hostname);
if(host == NULL){
return false;
}
unsigned int **addrptr = (unsigned int **)host->h_addr_list;
for(; *addrptr != NULL; ++addrptr){
server.sin_addr.S_un.S_addr = *(*addrptr);
if(connect(sock, (sockaddr *)&server, sizeof(server)) == 0){
break;
}
}
if(*addrptr == NULL){
return false;
}
}
else{
if (connect(sock, (sockaddr *)&server, sizeof(server)) != 0){
return false;
}
}
return true;
}
};
SOCKET sock;
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock != INVALID_SOCKET) {
// 接続
if(Local::connectToHost(sock, destHostName.c_str())){
// リクエスト作成
char requestParams[1024];
std::sprintf(requestParams, "?temp=%lf&humid=%lf", temp, humid);
std::string request = std::string("GET ") + destURL + requestParams + " HTTP/1.0\r\n\r\n";
// HTTPリクエスト送信
bool error = false;
int n = send(sock, request.c_str(), request.size(), 0);
if(n < 0) {
error = true;
}
// HTTPメッセージ受信
std::string result;
while(n > 0){
char buf[128];
n = recv(sock, buf, sizeof(buf), 0);
if(n < 0) {
error = true;
break;
}
// 受信結果
result.append(buf, n);
}
}
closesocket(sock);
}
}