![](/img/trans.png)
[英]C++: variable 'std::ifstream ifs' has initializer but incomplete type
[英]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
的定義。
在您的情況下, foo
是std::stringstream
。 您尚未包括std::stringstream
的定義,因此它不是完整的類型。 實際上,可能無法保證甚至已經聲明了它-它恰好是由其他頭文件之一聲明的。
解決方案:包括定義std::stringstream
的頭。 您可以在標准中找到所有標頭及其定義的類型,該標頭可以在線免費獲得。 但是,如果您不介意二手規范,則可能會發現更易於訪問由社區維護的c ++參考網站。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.