Как я могу упростить мой код C ++ для обратного символов - PullRequest
0 голосов
/ 07 декабря 2009

Здравствуйте, у меня есть эта программа, которая меняет вводимые мной буквы. Я использую iostream. Могу ли я сделать это по-другому и заменить iostream и cin.getline на cin >> 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;
 }

1 Ответ

3 голосов
/ 10 декабря 2009
Функция

ниже получает строку из стандартного ввода, переворачивает ее и записывает в стандартный вывод

#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...