簡體   English   中英

在C ++中使用sstream頭文件

[英]using sstream header file in C++

所以我試圖利用istringstream解析文本文件。 想法是按空格並根據子字符串分解每一行。 該代碼工作正常,除了兩件事:它對每一行的最后一個子字符串加倍計數,並且在讀完文件時出現段錯誤。 我以前沒有使用過sstream,所以任何見解都會有所幫助。

file.getline(str,80);

    while(!file.eof())

    {

        cout<<str<<endl;
        istringstream iss(str);
        while (iss)
            {
                iss >> sstr;
                cout << "Substring: " <<sstr << endl;
         }
        file.getline(str,80);   
    }

while循環應如下所示:

std::string line;

while (std::getline(file, line))
{
    std::istringstream iss(line);
    std::string token;

    while (iss >> token)
    {
        cout << "Substring: " << token << endl;
    }
}

getline和input操作返回流對象,該對象本身具有專門的bool轉換,以指示該操作是否成功,並且恰好在到達相應流的末尾時失敗。

while !eof幾乎總是錯誤的

切換到另一本書,並告訴我們您正在使用哪本書,以便我們可以相應地嘲笑和警告。

while (file.getline(str,80)) {
    cout<<str<<endl;
    istringstream iss(str);
    while (iss >> sstr) {
       cout << "Substring: " <<sstr << endl;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM