<bdo id='PpxnD'></bdo><ul id='PpxnD'></ul>
<i id='PpxnD'><tr id='PpxnD'><dt id='PpxnD'><q id='PpxnD'><span id='PpxnD'><b id='PpxnD'><form id='PpxnD'><ins id='PpxnD'></ins><ul id='PpxnD'></ul><sub id='PpxnD'></sub></form><legend id='PpxnD'></legend><bdo id='PpxnD'><pre id='PpxnD'><center id='PpxnD'></center></pre></bdo></b><th id='PpxnD'></th></span></q></dt></tr></i><div id='PpxnD'><tfoot id='PpxnD'></tfoot><dl id='PpxnD'><fieldset id='PpxnD'></fieldset></dl></div>

<legend id='PpxnD'><style id='PpxnD'><dir id='PpxnD'><q id='PpxnD'></q></dir></style></legend>
  • <small id='PpxnD'></small><noframes id='PpxnD'>

    <tfoot id='PpxnD'></tfoot>

      1. 在 C++ 中读取格式化输入的最简单方法?

        时间:2023-10-08
        <i id='32Ku7'><tr id='32Ku7'><dt id='32Ku7'><q id='32Ku7'><span id='32Ku7'><b id='32Ku7'><form id='32Ku7'><ins id='32Ku7'></ins><ul id='32Ku7'></ul><sub id='32Ku7'></sub></form><legend id='32Ku7'></legend><bdo id='32Ku7'><pre id='32Ku7'><center id='32Ku7'></center></pre></bdo></b><th id='32Ku7'></th></span></q></dt></tr></i><div id='32Ku7'><tfoot id='32Ku7'></tfoot><dl id='32Ku7'><fieldset id='32Ku7'></fieldset></dl></div>
        • <bdo id='32Ku7'></bdo><ul id='32Ku7'></ul>
            <legend id='32Ku7'><style id='32Ku7'><dir id='32Ku7'><q id='32Ku7'></q></dir></style></legend>

            <small id='32Ku7'></small><noframes id='32Ku7'>

                <tfoot id='32Ku7'></tfoot>
                  <tbody id='32Ku7'></tbody>

                  本文介绍了在 C++ 中读取格式化输入的最简单方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  有没有办法读取这样的格式化字符串,例如:48754+7812=Abcs.

                  Is there any way to read a formatted string like this, for example :48754+7812=Abcs.

                  假设我有三个字符串 X、Y 和 Z,我想要

                  Let's say I have three stringz X,Y and Z, and I want

                  X = 48754 
                  Y = 7812
                  Z = Abcs
                  

                  两个数字的大小和字符串的长度可能会有所不同,所以我不想使用 substring() 或类似的东西.

                  The size of the two numbers and the length of the string may vary, so I dont want to use substring() or anything like that.

                  是否可以给C++这样的参数

                  Is it possible to give C++ a parameter like this

                  ":#####..+####..=SSS.."
                  

                  所以它直接知道发生了什么?

                  so it knows directly what's going on?

                  推荐答案

                  一种可能性是 boost::split(),它允许指定多个分隔符并且不需要输入大小的先验知识:

                  A possibility is boost::split(), which allows the specification of multiple delimiters and does not require prior knowledge of the size of the input:

                  #include <iostream>
                  #include <vector>
                  #include <string>
                  
                  #include <boost/algorithm/string.hpp>
                  #include <boost/algorithm/string/split.hpp>
                  
                  int main()
                  {
                      std::vector<std::string> tokens;
                      std::string s(":48754+7812=Abcs");
                      boost::split(tokens, s, boost::is_any_of(":+="));
                  
                      // "48754" == tokens[0]
                      // "7812"  == tokens[1]
                      // "Abcs"  == tokens[2]
                  
                      return 0;
                  }
                  

                  或者,使用sscanf():

                  #include <iostream>
                  #include <cstdio>
                  
                  int main()
                  {
                      const char* s = ":48754+7812=Abcs";
                      int X, Y;
                      char Z[100];
                  
                      if (3 == std::sscanf(s, ":%d+%d=%99s", &X, &Y, Z))
                      {
                          std::cout << "X=" << X << "
                  ";
                          std::cout << "Y=" << Y << "
                  ";
                          std::cout << "Z=" << Z << "
                  ";
                      }
                  
                      return 0;
                  }
                  

                  然而,这里的限制是字符串的最大长度 (Z) 必须在解析输入之前确定.

                  However, the limitiation here is that the maximum length of the string (Z) must be decided before parsing the input.

                  这篇关于在 C++ 中读取格式化输入的最简单方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:从 .txt 文件读取到 C++ 中的二维数组 下一篇:读取输入文件,最快的方法?

                  相关文章

                  最新文章

                  <legend id='3T9Us'><style id='3T9Us'><dir id='3T9Us'><q id='3T9Us'></q></dir></style></legend>
                • <tfoot id='3T9Us'></tfoot>

                    <i id='3T9Us'><tr id='3T9Us'><dt id='3T9Us'><q id='3T9Us'><span id='3T9Us'><b id='3T9Us'><form id='3T9Us'><ins id='3T9Us'></ins><ul id='3T9Us'></ul><sub id='3T9Us'></sub></form><legend id='3T9Us'></legend><bdo id='3T9Us'><pre id='3T9Us'><center id='3T9Us'></center></pre></bdo></b><th id='3T9Us'></th></span></q></dt></tr></i><div id='3T9Us'><tfoot id='3T9Us'></tfoot><dl id='3T9Us'><fieldset id='3T9Us'></fieldset></dl></div>

                      <bdo id='3T9Us'></bdo><ul id='3T9Us'></ul>

                    1. <small id='3T9Us'></small><noframes id='3T9Us'>