关于fstream的一个小问题,小弟在这里先谢谢?
//7-4.h
#include<string>
#include<vector>
class Text{
vector<string> vstring;
public:
Text();
Text(string);
~Text();
void read(string);
string content();
};
-----------------------------------------
//7-4.cpp
//implement class Text in 7-4.h
#include"7-4.h"
#include<string>
#include<fstream>
#include<vector>
void Text::read(string nam){
ifstream in(nam);
string oneline;
while(getline(in,oneline))
vstring.push_back(oneline);
}
string Text::content(){
string result;
for(int i=0;i<vstring.size();i++){
result=+vstring[i];
}
return result;
}
Text::Text(){}
Text::Text(string name){
read(name);
}
Text::~Text(){}
-----------------------------------------
//use7-4.cpp
#include"7-4.h"
#include<iostream>
#include<string>
using namespace std;
int main(){
string name;
cout<<"enter the file name :";
cin>>name;
Text fileText;
fileText.read(name);
cout<<"the contents of the file is :"<<endl;
cout<<fileText.content()<<endl;
}
为什么编译器老是报错呀,真是不明白,如果在void Text::read(string nam)中nam是一个具体的文件名的话就可以,难到它不接受变量吗?
问题点数:20、回复次数:4Top
1 楼pushser(捕食者)回复于 2003-08-02 03:07:51 得分 0
C:\\Windows\\system32\\....\\file.cppTop
2 楼StdAfx(任杰)回复于 2003-08-02 03:12:13 得分 20
有下面几个错误:
ifstream in(nam);应该是 ifstream in(nam.c_str());或者ifstream in(nam.data());
result=+vstring[i];应该是 result += vstring[i];
int main()应该最后有一个返回值,比如retrun 0;Top
3 楼Areslp(努力ING)回复于 2003-08-02 09:09:16 得分 0
对,ifstream in(nam.c_str())就可以了Top
4 楼tomsx(...)回复于 2003-08-02 13:05:46 得分 0
谢谢了,通过了Top




