Я пытаюсь работать над проектом летнего симулятора, но, похоже, мне не удается запустить файловый ввод-вывод с нуля. Вот мой код:
std::string line;
std::ifstream F;
int M = 0; // Model Parameter //
if (F.open (fname)) // Error 1
std::cout << "Parsing File...";
else {
std::cout << "***Parsing - ERROR!***" << std::endl;
std::cout <<"Invalid filename passed to Parsing::ReadData" << std::endl;
std::cout << "fname = " << fname << " : Can't open file!" << std::endl;
throw 2;
}
std::getline (F, line);
std::vector<std::string> *result;
boost::split(result, line, boost::is_any_of(":")); // Errors 2 and 3
// Read Number of Metabolites
M = std::atoi(result[1]); // Error 4
std::cout << "M = " << M << std::endl;
F.close();
Пока что из того, что я читал в Интернете, это кажется мне довольно простым. Дайте мне знать, если я должен предоставить какие-либо разъяснения. Я получаю все эти ошибки при компиляции и выполнении:
In file included from test_parsing.cpp:11:
./Parsing_Engine.h:72:6: error: value of type 'void' is not contextually
convertible to 'bool'
if (F.open (fname))
^~~~~~~~~~~~~~
./Parsing_Engine.h:85:2: error: use of undeclared identifier 'boost'
boost::split(result, line, boost::is_any_of(":"));
^
./Parsing_Engine.h:85:29: error: use of undeclared identifier 'boost'
boost::split(result, line, boost::is_any_of(":"));
^
./Parsing_Engine.h:88:22: error: implicit instantiation of undefined template
'std::__1::vector<std::__1::basic_string<char>,
std::__1::allocator<std::__1::basic_string<char> > >'
M = std::atoi(result[1]);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:216:28: note:
template is declared here
class _LIBCPP_TEMPLATE_VIS vector;
Что касается ошибки F.open, я не понимаю, почему void не интерпретируется как false. Что касается ошибок Boost, я не понимаю, почему это происходит, потому что я установил библиотеку с помощью brew. Я не понимаю, что подразумевается под неявным экземпляром результата, хотя я предполагаю, что эта ошибка исчезла бы go, если бы я мог ускорить работу.
Есть какие-нибудь советы по поводу того, что я делаю неправильно? Также извините - я не уверен, что это TMI для сообщения stackoverflow.