printf形式の文字列を関数に渡し、sscanf()を使用してその文字列の内容を区切ります。しかし、この関数の使用に伴う問題は次のとおりです。 私はfollwsとしての機能を求めている次のように文字列の合計コンテンツを取得するには?
int var = -1;
ostringstream ossi;
ossi << "myContent";
std::string detailString = "my first line \n
the secon dline content is alos present \n
also we are also get s sdjhf sf"
myFunction("What value: %d \n My content: %s \n Detail Content: %s", var, ossi.str().c_str(), detailString.c_str());
実装は次のとおりです。
void myFunction(const char * format, ...)
{
int var;
char myContent[10000];
char detailContent[50000];
if (sscanf(myString, "What value: %d \n My content: %s \n Detail Content: %s", &var, cmyContent, detailContent) == 3)
{
std::cout<<" #### "<<std::endl;
std::cout<<"var value is :"<<var<<std::endl;
std::cout<<"My content is :"<<myContent<<std::endl;
std::cout<<"detailContent is :"<<detailContent<<std::endl;
std::cout<<" #### "<<std::endl;
}
}
上記の機能イムは、次のように置いてきて:
var value is : -1
My content is : myContent
detailContent is : my first line
代わりに総取得します第3引数(すなわち、detailContent)の内容は最初の行だけになります。 文字列の完全な内容を取得するための提案。 Thanskは事前に です。
コードはコンパイルされません。他の人があなたを助けるために修正してください。 – Andre