簡體   English   中英

令牌生成器中的C ++錯誤``變量'std :: stringstream mystream'具有初始化程序但類型不完整''

[英]c++ Error in tokenizer ''variable 'std::stringstream mystream' has initializer but incomplete type''

我是C ++的新手,正在嘗試從帶有數字的文件中讀取行,將行標記化為字符串數組,並將這些數組項轉換為雙精度數字。 但是在標記化的過程中,我得到這個錯誤``變量'std :: stringstream mystream'具有初始化但類型不完整''。 我看過其他人的建議,我想不使用boost來做,其余的代碼看起來很像我的,但是由於某種原因我得到了這個錯誤。 這是代碼。

#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>

using namespace std;

int main ()
{
    vector<string> tokens;
    string phrase="sdfs sdfs trt we rw";
    stringstream mystream (phrase);
    string temp;

    while(getline(mystream,temp,' ')){
        tokens.push_back(temp);
    }
}

得到有關此問題的反饋真是太好了。 提前致謝。

我想你忘了

#include <sstream>

在標題中。

“變量'foo bar'具有初始化程序,但類型不完整”

此錯誤表明變量bar已以某種方式使用,類型( foo )必須完整。 僅聲明但未定義的類型是不完整的。 因此,要使foo完整,必須包含foo的定義。

在您的情況下, foostd::stringstream 您尚未包括std::stringstream的定義,因此它不是完整的類型。 實際上,可能無法保證甚至已經聲明了它-它恰好是由其他頭文件之一聲明的。

解決方案:包括定義std::stringstream的頭。 您可以在標准中找到所有標頭及其定義的類型,該標頭可以在線免費獲得。 但是,如果您不介意二手規范,則可能會發現更易於訪問由社區維護的c ++參考網站。

暫無
暫無

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

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