fork(2) download
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. std::string gethex( unsigned int c )
  8. {
  9. std::ostringstream stm ;
  10. stm << '%' << std::hex << std::nouppercase << c ;
  11. return stm.str();
  12. }
  13.  
  14. std::string encode(std::string str)
  15. {
  16. static const std::string unreserved = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  17. "abcdefghijklmnopqrstuvwxyz"
  18. "-_.~";
  19.  
  20. std::string r;
  21.  
  22. for( unsigned int i = 0; i<str.length(); i+=1)
  23. {
  24. unsigned char c = str.at(i);
  25. if( unreserved.find(c) != -1 ) r += c ; else r += gethex(c) ;
  26. }
  27.  
  28. return r;
  29. }
  30.  
  31.  
  32.  
  33. std::string str_base = "ie=UTF-8&oe=UTF-8&hl=pt-BR&client=t&sc=2&sl=";
  34.  
  35. std::string Idiomas[] = { "Portuguese", "Spanish", "English", "Estonian", "French", "German", "Italian" };
  36.  
  37. std::string Idioms[] = { "pt", "es", "en", "et", "fr", "de", "it"};
  38.  
  39. /*
  40. std::string getClipboard()
  41. {
  42.   std::string strData;
  43.  
  44.   if (OpenClipboard(NULL))
  45.   {
  46.   HANDLE hClipboardData = GetClipboardData(CF_TEXT);
  47.   if (hClipboardData)
  48.   {
  49.   CHAR *pchData = (CHAR*) GlobalLock(hClipboardData);
  50.   if (pchData)
  51.   {
  52.   strData = pchData;
  53.   GlobalUnlock(hClipboardData);
  54.   }
  55.   }
  56.   CloseClipboard();
  57.   }
  58.   return strData;
  59. }
  60.  
  61. bool setClipboard(std::string textToclipboard)
  62. {
  63.   bool success = true;
  64.  
  65.   if (OpenClipboard(NULL))
  66.   {
  67.   EmptyClipboard();
  68.   size_t size = (textToclipboard.length()+1) * sizeof(CHAR);
  69.   HGLOBAL hClipboardData = GlobalAlloc(NULL, size);
  70.   if (hClipboardData)
  71.   {
  72.   CHAR* pchData = (CHAR*) GlobalLock(hClipboardData);
  73.   if (pchData)
  74.   {
  75.   memcpy(pchData, (CHAR*) textToclipboard.c_str(), size);
  76.   GlobalUnlock(hClipboardData);
  77.   SetClipboardData(CF_TEXT, hClipboardData);
  78.   }
  79.   }
  80.   CloseClipboard();
  81.   }
  82.   return success;
  83. }*/
  84.  
  85. bool Translate(unsigned short language1, unsigned short language2)
  86. {
  87. // std::string str (str_base+Idioms[language1]+"&tl="+Idioms[language2]+"&q="+encode(getClipboard()));
  88. std::string str (str_base+Idioms[language1]+"&tl="+Idioms[language2]+"&q="+encode("áéíóú"));
  89. cout << str;
  90. return true;
  91. }
  92.  
  93. int main()
  94. {
  95. cout << "Press CTRL and SPACE.\n\nCreated by Pedro Henrique.";
  96. unsigned short language1=0, language2=2;
  97. Translate(language1, language2);
  98. return 0;
  99. }
  100.  
Success #stdin #stdout 0s 3480KB
stdin
Standard input is empty
stdout
Press CTRL and SPACE.

Created by Pedro Henrique.ie=UTF-8&oe=UTF-8&hl=pt-BR&client=t&sc=2&sl=pt&tl=en&q=%c3%a1%c3%a9%c3%ad%c3%b3%c3%ba