Я не могу понять, почему моему компилятору (MSVC ++ 2010) не нравится этот код:
// get_sum(filename as c-string) returns sum from file
int get_sum(const char* const s) {
stringbuf bill_buf;
ifstream bill_file;
bill_file.open(s);
bill_file.get(bill_buf, '\0'); // read whole file
bill_file.close();
return get_sum_from_string(bill_buf.str());
}
Я получаю эти ошибки (я перевел их с немецкого на английский и дал правильные номера строк для выдержки из кода без начального комментария):
Ошибка 1, ошибка C2079: в bill_buf используется неопределенный класс 'std :: basic_stringbuf <_Elem, _Traits, _Alloc>' (строка 2)
Ошибка 2, ошибка C2664: 'std :: basic_istream <_Elem, _Traits> & std :: basic_istream <_Elem, _Traits> :: get (_Elem *, std :: streamsize)': преобразование параметра 1 из ' int 'to' char * 'невозможен (строка 5)
Ошибка 3, ошибка C2228: Слева от ".str" должен быть класс / структура / объединение. (Строка 7)
Кто-нибудь понял, что там происходит? Большое спасибо! (Если у кого-то есть идея, как быстро собрать все содержимое файла в строку, я также буду признателен)