1

後で読み取るために、X オブジェクトをファイルに書き込もうとしていましたが、C++ の I/O についてあまり理解していません。X は、例として、文字列と数値を持つクラスになります。(文字列を使用しましたが、文字だけでは想定されていません)

#include <iostream>
#include <string>
#include <sstream>

class X { 
    int _number;
    std::string _letter;
    public:
    X() { _number = 0; _letter = "anonimo"; }
    X(int number, std::string letter) { _number = number; _letter = letter; }
    int getnumber() { return _number; }
    std::string getletter() { return _letter; }
    void setNumber(int number) { _number = number; }
    void setLetter(std::string letter) { _letter = letter; }

};

std::istream& operator>>(std::istream& is, X &x) {
    std::string str;
    std::string letter;
    int number;
    std::getline(is, str);
    sscanf(str.c_str(), "%[^,], %d", letter, &number);A
    X c(number, letter);
    return is;
}
std::ostream& operator<<(std::ostream& out, X &x) {
    out << x.getLetter() << ", " << x.getNum();
    return out;
}

int main(int argc,char *argv[]) {
    X c1 = X(2, "w");
    X c2 = X(6, "c");
    X c3, c4;
    std::ofstream outFile;
    if (!(argc > 1)) return -1;
    outFile.open(argv[1]);
    std::stringstream str;
    str << c1 << std::endl << c2 << std::endl;
    std::string xs = xs.c_str();
    outFile << xs.c_str();
    outFile.close()
    std::ifstream infile;
    infile.open(argv[1]);
    infile >> c3;
    infile >> c4;
    return 0;
   }

std::stringstream を使用してファイルに保存し、c1 と c2 からの情報を使用して 2 つの新しい X、c3 と c4 を作成する、最善の方法を知りたいと思っていました。

4

2 に答える 2