1

エラーC2784:'std :: basic_ostream <_Elem、_Traits>&std :: operator <<(std :: basic_ostream <_Elem、_Traits>&、const std :: basic_string <_Elem、_Traits、_Alloc>&)':>できませんでした'std :: basic_ostream <_Elem、_Traits>&'のテンプレート引数を>'std :: string' c:\documentsおよびsettings\ rcs \ mydocuments \ visual studio 2010 \projects..から推測します。

コードは:

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include "Pacient.h"

using namespace std;

void ruajKartele(Pacient patient)
{
    int mosha;
    char gjinia;
    string foo=patient.getEmer();
    string skedar=foo;
    ofstream file;
    file.open(skedar, ios::app);
    skedar<<foo+"\n";
    mosha=patient.getMosha();
    gjinia=patient.getGjinia();
    foo=patient.getDiagnoza();
    skedar<<mosha<<"\n"<<gjinia<<"\n"<<foo<<"\n";
    foo=patient.getPrognoza();
    skedar<<foo+"\n";
    skedar<<"-----\n"; //5
    skedar.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
//Pacient structure:
    #include <string>
class Pacient
{
protected:
    std::string emer;
    int mosha;
    char gjinia;
    std::string diagnoza;
    std::string prognoza;

public:
    Pacient(void);
~Pacient(void);
void setEmer(std::string);
void setMosha (int);
void setGjinia(char);
void setDiagnoza(std::string);
void setPrognoza(std::string);
std::string getEmer(void);
int getMosha(void);
char getGjinia(void);
std::string getDiagnoza(void);
std::string getPrognoza(void);
};
4

2 に答える 2

1
string skedar=foo;
ofstream file;
file.open(skedar, ios::app);
skedar<<foo+"\n";

skedarは、std::string(明らかに)パスを表します。fileですofstream。そのストリームに書き込みたい場合は、できません。:skedar << "whatever";に出力する必要があります。ofstream

file << foo << "\n";

同じskedar.close();:ファイル名を表す文字列ではなく、閉じたいファイルです。

于 2012-01-15T10:21:05.163 に答える
0

文字列であるskedarで<<演算子を使用しました。文字列には<<演算子はありません。あなたはおそらくこのようなものを使うつもりでした:

file<<skedar<<mosha<<"\n"<<gjinia<<"\n"<<foo<<"\n";

私はあなたが持っていたことにも気づきました:

skedar.close();

これの代わりに:

file.close();

初めて追加するのを忘れました。

于 2012-01-15T10:21:28.263 に答える