2016-11-17 54 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

相關問題