文件io中的getline函数问题
- C/C++ code
#include<iostream>#include<fstream>using namespace std;int main(){ifstream input;input.open("city.txt");if(input.fail())cout << "file doesn't exit."<<endl;else{char city[20];while(!input.eof()){input.getline(city,20,'#');cout << city;}}input.close();return 0;}
city.txt:
New Yorkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk # London # Beijing # Hefei
输出:New Yorkkkkkkkkkkkk
然后程序就停了,也不报错,就停在那;
请问是怎么回事?
[解决办法]
char city[20];
需要将其中的20设置得更大一点,比如:
char city[200];
然后:
input.getline(city,20,'#');
改为
input.getline(city,200,'#');
[解决办法]
楼主干脆用String吧,这样方便多了,以下是我修改以后的代码
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
ifstream input;
input.open("city.txt");
if(input.fail())
cout << "file doesn't exit."<<endl;
else
{
//char city[20];
string city;
while(!input.eof())
{
getline(input,city,'#');
cout << city << "\n";
}
}
input.close();
return 0;
}
[解决办法]
内部细节参看此人文章
http://blog.csdn.net/yafeng_jiang/article/details/7106109
[解决办法]