c++ - 如何获取字符串的总内容?

标签 c++

我已将一个 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 

它不是获取第三个参数的全部内容(即 detailContent),而是只获取第一行。 获取完整字符串内容的任何建议。 提前致谢。

最佳答案

C 和 C++ 中的可变参数并不像您认为的那样工作。参见 this link有关如何使用可变参数的教程。

或者查看stdarg 的手册页。

关于c++ - 如何获取字符串的总内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118834/

相关文章:

c++ - 这个输入中的 float 和 double 有什么区别?

c++ - 如何在现代 opengl 中正确实现四元数相机?

c++ - 由于 Tab 键顺序,鼠标光标总是得到错误的 hwnd - MFC 应用程序

c++ - 将零、负和正映射到 0、1、2 的无分支代码

c++ - 错误 :sorry, 未实现:在函数模板中使用 decltype 时,函数模板签名中存在字符串文字

javascript - V8 中的 Typeof 和 Expression*

c++ - 使用 C++ 从 .OBJ 文件中读取和存储值

c++ - C++/Qt 中的精确宽度整数 : Is typedef int qint32 really correct?

c++ - CreateDirectory 函数不起作用

c++ - 库函数返回原始指针,我想使用智能指针