C++文件读入

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:40:26
一道关于c++文件读入的问题,我刚开始用的是ifstream:
先定义一个ifstream read;
然后在read("~.txt");后来想把文件名设置成变量,也就是说想让用户输入文件名,就换成了这样
void Student::readData(){
FILE *fp;
string temp;
ifstream read;
char c[20];
cout<<"请输入要读入的文件名:"<<endl;
cin>>c;
if ((fp = fopen(c, "r")) == NULL) {
cout << "您输入的文件名不正确!" << endl;
} else {
while (read >> temp) {
ID.push_back(atoi(temp.c_str()));
cout << ID.at(0);
read >> temp;
Name.push_back(temp);
cout << Name.at(0);
read >> temp;
Score.push_back(atof(temp.c_str()));
cout << Score.at(0);
}
}
}
可能是因为不能在使用read了,每次都报错:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
请各位帮个忙教我一下如何输出,谢谢了~

fp打开的文件read当然不能用.
用read.open(c,ios::in);打开文件

既然用 ifstream读数据, 为啥要 fopen 呢。。 这完全是两套东西

用read.open

#include<iostream>
#include<numeric>
#include<fstream>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<algorithm>
#include<stack>
#include<queue>
#include<utility>
#include<sstream>
#include<iterator>
#include<map>
#include<windows.h>
using namespace std;
int main()
{
string way="~.txt";
ifstream pp(way.c_str());
return 0;
}

这样就行了~~