普通读入的时候会以空格作为分隔符
直接用cin>>s读入,此时可以直接处理文件尾的情况
text代码:
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
//freopen("case.txt","r",stdin);
string s;
while(cin>>s)
cout<<"String:"<<s<<endl;
cout<<"End"<<endl;
}
运行结果:
fjdsoai gasodijga gdsaoi
String:fjdsoai
String:gasodijga
String:gdsaoi
^Z
End
行读入用getline
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
is 进行读入操作的输入流
str 存储读入的内容
delim 终结符
text代码:
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
//freopen("case.txt","r",stdin);
string s;
while(getline(cin,s))
cout<<"String:"<<s<<endl;
cout<<"End"<<endl;
}
运行结果:
abacadsf
String:abacadsf
asdg gadsg
String:asdg gadsg
gaosd gsad gsad gasdg
String:gaosd gsad gsad gasdg
^Z
End
行读入同时可以直接处理文件末尾的EOF
以上两个经 freopen 重定向到文件后同样的结果。