C Builder(C ++)AnsiString Length方法

时间:2017-01-12 23:44:09

标签: c++ vcl

我习惯用c#编程,但现在我不得不用c ++项目来帮助我的室友。

这是“不工作的代码”:

           <input type="button" value="Toggle block visibility" onclick="$('.mdinput').eq(1).toggle();">




        ```yaml
              #: name=d
      rac: [3.551, 2.232, 1.402, 1.114, 0.882, 0.7]
         gmr: [0.0055611962035177, 0.00700459393067038,  0.00882262274842038,   0.00990159326021141, 0.0111125174323268,    0.0124715326552536]
              conductors: [6, 4, 2, 1, 1/0, 2/0]
      ```

    ```yaml
 #: name=rac
      [3.551, 2.232, 1.402, 1.114, 0.882, 0.9]
    ```





 <input type="button" value="Toggle block visibility2" onclick="$('.mdinput').eq(2).toggle();">





    ```yaml
                #: name=d2
            rac: [3.551, 2.232, 1.402, 1.114, 0.882, 0.7]
         gmr: [0.0055611962035177, 0.00700459393067038,  0.00882262274842038,    0.00990159326021141, 0.0111125174323268, 0.0124715326552536]
      conductors: [6, 4, 2, 1, 1/0, 2/0]
     ```

我从文件中获取了一个关键字列表。在MaxWordLength中,我想知道单词的最大长度(单词在文本文件中用新行分隔)。当我执行temp.Length时,我得到695(文件中所有字符的数量)。为什么我没有得到我添加到向量中的单词的实际长度?

谢谢!

LE:我也在下面的for中做了MaxWordLength逻辑,我将这些项放在RichEdit中。

1 个答案:

答案 0 :(得分:0)

使用file.getline()代替&gt;&gt;运算符,它不会在您的情况下产生所需的输出,但会为您提供完整的文件内容。所以AnsiString()。Length()不是你的问题。只需修改部分代码即可使其按预期工作:

char buffer[255];

if(file.is_open()){
    while(file.getline(buffer, sizeof(buffer))){
        temp = AnsiString(buffer).Trim();
        if(temp.Length()> maxWordLength) maxWordLength=temp.Length();
        keyWords.push_back(temp);
    }
    file.close();
}