0
我想從文件中讀取數字,並且遇到getline問題。我有下面的代碼,我會後的事項部分:從文件中讀取時無法使用getline
的main.cpp
int main() {
GrafNoEtiquetat Graf;
ifstream f_ent;
ofstream f_sort;
string str;
cout << "Introdueix el nom del fitxer a llegir." << endl;
cin >> str;
char *cstr=new char[str.size()+1];
strcpy(cstr, str.c_str());
f_ent.open(cstr);
if(f_ent.fail()) cerr << "El fitxer no s'ha pogut obrir." << endl;
else {
Graf(cstr);
unidireccional(Graf);
delete [] cstr;
cout << "Introdueix el nom del fitxer de surtida" << endl;
cstr = new char [str.size()+1];
strcpy(cstr, str.c_str());
f_sort.open(cstr);
if(f_sort.fail()) cerr << "El fitxer no s'ha creat." << endl;
else Graf.escriureGraf(f_sort);
}
return 0;
}
這裏是使用爲const char * CSTR創建格拉芙功能:
GrafNoEtiquetat::GrafNoEtiquetat(const char * cstr) {
char c[1000];
int n1, n2;
cstr.getline(c,80);
while(c!="#") {
nNodes++;
cstr.getline(c,80);
}
arestes.resize(nNodes+1);
while(!cstr.eof()) {
cstr >> n1;
cstr >> n2;
afegirAresta(n1, n2);
}
cstr.close();
}
當我讀取n1和n2以及當我想關閉文件時,我在所有行中使用'cstr',getline,cstr.eof()時出現錯誤。 的錯誤是類似以下內容:
error: request for member 'getline' in 'cstr', which is of non-class type 'const char*'
我不知道爲什麼會出現這種情況,任何線索?
謝謝,它的工作! –