2010-06-21 3 views
4

У меня проблема с stringstream.my visual studio, а linux g ++ может понять stingstream. Я добавил sstream, но он ничего не решает. Я работал с ним раньше и действительно не знаю, что с ним сейчас?stringstream не был объявлен в этой области

#include <sstream> 
#include <stdlib.h> 
#include "SymbolTable.cpp" 
#include "setjmp.h" 
using namespace std; 
jmp_buf *bfj; 
int TOP , SP=3 ; 
struct types{int int_val;float float_val;char char_val;bool bool_val;}; 

types DS[6400]; 
int main(){ 
...//some code here 
label38 : stringstream s; 
label39 : bfj = (jmp_buf *)"label65"; 
label40 : longjmp(*bfj,1);; 
label41 : goto label43; 
label42 : TOP=SP; 
//some code here 
} 

Я пишу компилятор, поэтому код является выходным, поэтому он может быть немного странным.

+0

Это компилируется для меня. Вы получаете какие-либо другие ошибки или предупреждения? Вы уверены, что используете компилятор C++ (g ++), а не компилятор C (gcc)? –

ответ

10

Если вы включите #include <sstream>, то вы также должны ссылаться на класс по:

std::stringstream или объявить using namespace std; перед его использованием.

Если вы разместите дополнительную информацию, мы можем предоставить более подробную помощь.

+0

namespace std помогает it.thanks! – angela

+0

@angela: у вас уже было это в фрагменте кода, который вы опубликовали. – jalf

2

Этот код компилируется нормально для меня под G ++:

#include <sstream> 
#include <stdlib.h> 
#include "setjmp.h" 
using namespace std; 
jmp_buf *bfj; 
int TOP , SP=3 ; 
struct types{int int_val;float float_val;char char_val;bool bool_val;}; 

types DS[6400]; 
int main(){ 
label38 : stringstream s; 
label39 : bfj = (jmp_buf *)"label65"; 
label40 : longjmp(*bfj,1);; 
label41 : goto label43; 
label42 : TOP=SP; 
label43 : (void)0; 
//some code here 
} 

Единственное отличие состоит в том, что я удалил #include "SymbolTable.cpp", и добавил label43.

Таким образом, очевидно, что если это не сработает для вас, проблема заключается в том, что вы пропустили код. В //some code here части или в SymbolTable.cpp

Конечно, это также кажется очень подозрительным, что вы в том числе файл CPP. Скорее всего, это ошибка.

Смежные вопросы