例如文件test.txt中有这么一段话:I am a boy. You are a girl.
如何一次一个的读取单词,即第一次读取I,第二次读取am,依次类推。
方法1:
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
ifstream ifs("test.txt"); // 改成你要打开的文件
streambuf* old_buffer = cin.rdbuf(ifs.rdbuf());
string read;
while(cin >> read) // 逐词读取方法一
cout << read;
cin.rdbuf(old_buffer); // 修复buffer
}
方法2:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream ifs("test.txt"); // 改成你要打开的文件
ifs.unsetf(ios_base::skipws);
char c;
while(ifs.get(c)) // 逐词读取方法二
{
if(c == ' ')
continue;
else
cout.put(c);
}
}
方法3:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream ifs("test.txt"); // 改成你要打开的文件
string read;
while(getline(ifs, read, ' ')) // 逐词读取方法三
{
cout << read << endl;
}
}
方法4:
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ifstream ifs("test.txt"); // 改成你要打开的文件
char buffer[256];
while(ifs.getline(buffer, 256, ' ')) // 逐词读取方法四
{
cout << buffer;
}
}