2016-11-17 61 views
-2

我有这段代码,我想在插入语句的每个点之后插入一个新行。我得到错误消息没有匹配的成员函数调用'插入'。我究竟做错了什么?在每个点之后插入一个新行,C++

#include<iostream> 
#include<string> 


using namespace std; 

int main() 
{ 
    string const inText1 = "I'm reading. "; 
    string const inText2 = "I like to read. "; 
    string const inText3 = "I'm gonna read that book. "; 
    string const inText4 = "She's reading. "; 
    string const inText5 = "He's reading. "; 
    string const inText6 = "READ. "; 
    string const inText7 = "Reading. "; 

    string inText8=inText1+inText2+inText3+inText4+inText5+inText6+inText7; 

    string::size_type dotpos = inText10.find("."); 
    if(dotpos != string::npos) 
     inText10.insert(dotpos, endl); 


    cout << inText10 << endl; 


    return 0; 
} 
+6

什么是'inText10'?它没有在你的代码中定义 – UnholySheep

回答

0

假设inText10只是在Text8中,这是工作代码。

  1. 早些时候,inText10字符串没有被发现:

    所作的更改。因此,在该对象上插入()可能会产生错误。

  2. 插入换行符的位置是不是 dotpos。它的dotpos + 1
  3. 注意这个代码只是在找到第一个点后添加一个换行符。要在每个点之后添加换行符,请使用while循环来查找所有点并在其旁边插入换行符。

    #include<iostream> 
    #include<string> 
    using namespace std; 
    
    int main() 
    { 
        string const inText1 = "I'm reading. "; 
        string const inText2 = "I like to read. "; 
        string const inText3 = "I'm gonna read that book. "; 
        string const inText4 = "She's reading. "; 
        string const inText5 = "He's reading. "; 
        string const inText6 = "READ. "; 
        string const inText7 = "Reading. "; 
    
        string inText8=inText1+inText2+inText3+inText4+inText5+inText6+inText7; 
    
        string::size_type dotpos = inText8.find("."); 
        if(dotpos != string::npos) 
        inText8.insert(dotpos + 1, "\n"); 
    
    
        cout << inText8 << endl; 
        return 0; 
    } 
    
0

有很多在你的代码不确定的变量,但基本上你收到“不匹配的成员函数调用‘插入’”因为你试图插入的std :: ENDL成字符串。 std :: endl不能被转换成任何类型的char,所以你不能这样做。

要解决你的问题,更换

inText10.insert(dotpos, endl); 

inText10.insert(dotpos, '\n'); 

顺便说一句,如果你想插入\ n每一个点后,你应该做的发现()在一个循环,因为find()返回一个匹配的char位置,而不是一个数组。

要了解更多信息,为什么你不能插入的std :: ENDL,请阅读本std::endl description at cppreference

相关问题