C++用fstream读取string失败,求大神

【求助】C++用fstream读取string失败,求大神
#include<iostream>
using namespace std;
#include<string>
#include<fstream>
void main()
{
int i=0;
string a;
fstream f;
f.open("c:\\a.txt",ios::in);
f>>i;
getline(f,a);
cout<<i<<"\t"<<a;
system("pause");
}
C盘a.txt内容:
123
ABCDE FGH
然后输出结果只有123,求解决方法,谢谢。。。
(已尝试clear();和sync();没用)
------解决思路----------------------
123之后有回车和换行符,getline会读取到'\n',然后停止。你需要在getline之前忽略'\n'。
在getline之前加入这行代码:

f.ignore (std::numeric_limits<std::streamsize>::max(), '\n'); 

使用numeric_limits类要包含头文件<limits>
------解决思路----------------------
getline每次只能读取一行数据,遇到'\n‘就终止了
根据你的需要,可以写个while循环逐行读取,或者使用read读取全部数据