В чем смысл этой проблемы и как я могу ее исправить?
Похоже, что она не соответствует функции str()
, пока я пытаюсь ее использовать.
На самом деле, я хочу взять "string "from rhs
и поместить его в this->file
, так что если у вас есть альтернативная идея, это тоже хорошо.
Метод 'str' не может быть разрешен
Метод 'c_str'не может быть решена
#include <cstdio>
#include <iostream>
#include <sstream>
class MyFile {
FILE* file;
MyFile& operator=(const MyFile& rhs) const;
MyFile(const MyFile& rhs);
public:
MyFile(const char* filename) :
file(fopen(filename, "w")) {
if (file == NULL) {
throw std::exception();
}
}
~MyFile() {
fclose(file);
}
template<typename T>
MyFile& operator<<(const T& rhs) {
std::ostringstream ss;
ss << rhs;
if (std::fputs(ss.str().c_str(), this->file) == EOF) { // Method 'str' could not be resolved
throw std::exception();
}
return *this;
}
};