今天要记录一道看起来十分简单的OJ题目,但开始对于cin的一些操作忘得差不多了,没做出来,故记下来给自己提个醒。
描述
给出包含N个单词的一行输入,输出N行。第一行和输入一样。每次输出过一行后,这一行的第一个单词在下一行被放到最后。
输入
包含N个单词的字符串,单词以一个空格分开。N不在输入中给出,你需要计算单词的数量来获得。字符串包含的字符数小于100。
输出
输出N行。 第一行和输入相同。 剩下的N-1行中,上一行的第一个单词被放到最后。每个单词之间有一个空格。
样例输入
Please think about it carefully
样例输出
Please think about it carefully
think about it carefully Please
about it carefully Please think
it carefully Please think about
carefully Please think about it
思路一
开始的时候,用while(cin>>str)来读每一个单词,但是cin不遇到EOF或者错误输入是不会停止的,所以光靠cin>>这种格式化的输入操作是不够的,考虑加上cin.get()这种非格式化的输入操作,在读取一个字符串后,用一次cin.get(),看是不是’\n’,如果是,就break。
代码一
#include "stdafx.h"
#include <iostream>
#include <queue>
#include <string>
using namespace std;
void