2016-04-09 4 views
2

Я пытаюсь создать таблицу символов на основе ввода из файла.Ошибка C++: ожидаемое первичное выражение перед 'int'

На данный момент у меня есть код для чтения файла по строкам, отделяйте токены и распечатывайте токен и его тип.

Теперь я должен найти способ сохранить эти значения (токены и тип) в таблице символов.

Я не знаком с C++ НА ВСЕ. Первоначально я пытался создать многомерный массив, но это был спад, потому что я не знаю, сколько строк или токенов будет иметь файл, и я не мог бы динамически установить размер массивов. Теперь я решил использовать вектор векторов. Вот как выглядит моя строка кода:

vector< vector<int> > vec(4, vector<int>(4)) myVector; 

Я понятия не имею, почему он не работает. Я скопировал его именно из ответа на cplusplus.com. Я также пробовал

std::vector<std::vector<int> > row; 

который был взят из другого вопроса. Я искал часы для лучшего способа создания этой таблицы и столкнулся только с проблемами.

Ошибка я получаю (как указано в вопросе) является

error: expected primary-expression before 'int'

Пожалуйста, кто-то помочь!

ответ

3

Вам нужно выяснить, как вы хотите, чтобы ваш объект вызывался.

Если вы хотите назвать ваш объект vec, вы должны написать:

std::vector< std::vector<int> > vec(4, std::vector<int>(4)); 

Если вы хотите назвать ваш объект myVector, вы должны написать:

std::vector< std::vector<int> > myvector(4, std::vector<int>(4)); 

И если у вас есть «, используя namespace std; " появляясь в любом месте вашего кода, remove it, and forget that you ever saw anything like that.

+0

спасибо !! Это решило мою проблему. Кроме того, я не понял, что мне нужно добавить '#include ' наверху. –

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