openframeworksでの文字列操作の覚書
openframeworksを使っていて、たまに文字列操作をすると忘れてしまうので覚書 まぁ、ただのc++なんですが・・
カレントディレクトリの取得
char dir[255]; getcwd(dir,255); cout<<"Current Directory : "<<dir<<endl;
文字列結合は ofToStringして、+で連結
string cmd_convert; cmd_convert = "osascript " + ofToString (dir) + ofToString(CMD_FACECONVERT);
絶対パスからユーザ名を取得する
ofDir dir(""); ofSplitString(dir.getAbsolutePath(),"/").at(2)
画面への文字の描画はofDrawBitmapString
ofDrawBitmapString(ofToString(scene_id), x, y);
ただし、フォントサイズとかは指定できない
フォントとサイズを指定するなら、ofTrueTypeFont::drawString()
ofTrueTypeFont font;//ofApp.hに記載 void ofApp::setup(){ .... font.loadFont("fonts/mono0755.ttf", 40);//40はフォントサイズ } void ofApp::draw(){ font.drawString("time:" + ofToString(ofGetElapsedTimef()), font_x, font_y); }
タイトルバーにFPSを表示
- 60FPS以上などではこれが原因でFPS落ちることもあるので注意
ofSetWindowTitle(ofToString(ofGetFrameRate(), 0));
ofXMLをつかったXMLの操作
string buffer = "<detect>\ <file>aaa.jpb</file>\ <target>bbb.jpg</target>\ </detect>"; cout << buffer << endl; ofXml xml; xml.loadFromBuffer(buffer); cout << xml.getValue("target") << endl;