【问题标题】:c++/cli arraylist ^ (locked the size of string )c++/cli arraylist ^ (锁定字符串的大小)
【发布时间】:2018-04-19 17:08:59
【问题描述】:

我正在使用 Visual Studio 创建 C++ 'Cli' /.Net 桌面应用程序, 并将我所有的测试结果作为字符串收集到一个列表中:

System::Collections::ArrayList^ lineList_type_err1 = gcnew System::Collections::ArrayList;   // list of word  
lineList_type_err1->Add("word list ");
lineList_type_err1->Add("|result  1 |");
lineList_type_err1->Add("|result 2 |");
lineList_type_err1->Add("|result 3 |");
lineList_type_err1->Add(" ");

但问题是每个单词都有自己的大小,我的信息太糟糕了。我想要一些方法来锁定类似于:

 printf("\n| %-25s |","result 1");
 printf("\n| %-25s |","result 2");

printf 中的大小被锁定为25,但我想这样做:

System::Collections::ArrayList^  ;

【问题讨论】:

  • 非 C++ - 重新标记和编辑标题。
  • 没有充分的理由与 printf() 搏斗。使用 Console::Write() 和复合格式。
  • 我已经提到它是一个 c++ 桌面应用程序,我有文本框来显示结果,我没有使用控制台也有很多结果这就是我使用列表的原因
  • 不是 C++ -- 将标签更改为“c++-cli”。

标签: asp.net .net visual-studio c++-cli desktop-application


【解决方案1】:

我用不同的结果尝试你的解决方案,我写了这段代码,我得到了这个输出

string liine = std::to_string(linecnt);String^ liine1;
liine1 = gcnew String(liine.c_str());
String ^ mssg = String::Format("|{0,-10}| {0,-10} | {0,-90} |", "ligne", liine1, ": erreur 1. ");
lineList_type_err1->Add(mssg);

com/Lxekl.png

我刚刚收到的消息的其余部分在哪里
|法线 |法线 |法线 |

【讨论】:

    【解决方案2】:

    您可以为此使用String.Format

    using System::String;
    ...
    
    lineList_type_err1->Add(String::Format("| {0,-25} |", "result 1"));
    

    【讨论】:

      【解决方案3】:

      这是对每个人的帮助;

      String^ liine1;
      std::string liine;
      liine = std::to_string(linecnt);
      std::string stdStringVar(liine);
      liine1 = gcnew String(liine.c_str());
      lineList_type_err1->Add(String::Format("|{0,6}|{1,5}|{2,40}", "line :", liine1, "erreur 1 "));
      

      【讨论】:

        猜你喜欢
        • 2022-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-24
        相关资源
        最近更新 更多