Namareba食べたい

備忘録てきなもの。だらだら書いていきます。

stringからint型へ(c++)

Arduinoでgpsのログを取り込むためのプログラムのプロトタイプ

stringで、かつ','で区切られて送られてくるgpsのログをint型に分解して読み取る。

>|cpp|

#include<iostream>

#include<cstdio>

#include<fstream>//For ifstream

#include<cstring>

#include<cstdlib>

#include<sstream>

using namespace std;

using std::stringstream;//namespace("std::")を省略できるように

 <||

struct indata{

   string data1;

   string data2;

   string data3;

};

 

int main(void){

   

 

   ifstream ifs("in");

   //inの中身

   /*

     111,222,333

     222,222,333

     333,222,333

   */

   string templ;

   indata data;

 

   //String to Int

   stringstream ss1,ss2,ss3;

   string s1,s2,s3;

   int hoge1,hoge2,hoge3;

   /*

   cin >> s1 >> s2 >> s3;

   ss << s1;

   ss >> hoge;

   cout << hoge << endl;

   */

   while(1){

      if(!getline(ifs,templ))break;

      //','を空白に置換

      replace(templ.begin(),templ.end(),',',' ');

      //分解

      stringstream buf(templ);

      //読み取り

      if(buf>>data.data1 >> data.data2 >>data.data3){

//cout << data.data1 << data.data2 << data.data3 << endl;

ss1 << data.data1;

ss2 << data.data2;

ss3 << data.data3;

ss1 >> hoge1;

ss2 >> hoge2;

ss3 >> hoge3;

cout << hoge1 << " " << hoge2 << " " << hoge3 << endl;

ss1.clear();

ss2.clear();

ss3.clear();

      }

   }

   

  

   return 0;

}

||<