您好,我有这个程序可以反转我输入的字母。我正在使用iostream。我可以用另一种方法替换iostreamcin.getlinecin >> X吗?

我的代码:

 //Header Files
 #include<iostream>
 #include<string>
 using namespace std;

 //Recursive Function definition which is taking a reference
 //type of input stream parameter.
 void ReversePrint(istream&);

 //Main Function
 int main()
 {
  //Printing
  cout<<"Please enter a series of letters followed by a period '.' : ";

  //Calling Recursive Function
  ReversePrint(cin);

  cout<<endl<<endl;
  return 0;

 }

 //Recursive Function implementation which is taking a
 //reference type of input stream parameter.
 //After calling this function several times, a stage
 //will come when the last function call will be returned
 //After that the last character will be printed first and then so on.
 void ReversePrint(istream& cin)
 {
  char c;
  //Will retrieve a single character from input stream
  cin.get(c);

  //if the character is either . or enter key i.e '\n' then
  //the function will return
  if(c=='.' || c=='\n')
  {
   cout<<endl;
   return;
  }

  //Call the Recursive function again along with the
  //input stream as  paramter.
  ReversePrint(cin);

  //Print the character c on the screen.
  cout<<c;
 }

最佳答案

下面的函数从标准输入获取行,将其反转并写入stdout

#include <algorithm>
#include <string>
#include <iostream>

int main()
{
    std::string line;
    std::getline( std::cin, line );
    std::reverse( line.begin(), line.end() );
    std::cout << line << std::endl;
}

关于c++ - 如何简化C++代码以反转字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1858778/

10-13 07:36