fork download
  1. #include <sstream>
  2. #include <string>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. char readUntilCharInLine(istream& is, char untilChar, string& result)
  8. {
  9. typedef istream::traits_type Traits;
  10. Traits::int_type i;
  11.  
  12. while(is && (i = is.get()) != Traits::eof())
  13. {
  14. char c = Traits::to_char_type(i);
  15. if(c == untilChar || c == '\n')
  16. return c;
  17. result += c;
  18. }
  19.  
  20. return 0;
  21. }
  22.  
  23. string convert(string input)
  24. {
  25. istringstream is(input);
  26. string result;
  27.  
  28. while(is)
  29. {
  30. readUntilCharInLine(is, ',', result);
  31. result += ';';
  32.  
  33. readUntilCharInLine(is, ',', result);
  34. result += ';';
  35.  
  36. readUntilCharInLine(is, '.', result);
  37. result += ',';
  38.  
  39. readUntilCharInLine(is, ',', result);
  40. result += ';';
  41.  
  42. readUntilCharInLine(is, '.', result);
  43. result += ',';
  44.  
  45. readUntilCharInLine(is, '\n', result);
  46. result += '\n';
  47. }
  48.  
  49. return result;
  50. }
  51.  
  52. int main()
  53. {
  54. std::cout << convert("27.09.2012,15:30:17,12.562,3.231\n"
  55. "27.09.2012,15:30:17,12.125,3.144\n"
  56. "27.09.2012,15:30:17,12.767,3.145\n"
  57. "27.09.2012,15:30:18,12.660,3.260");
  58. }
Success #stdin #stdout 0s 2988KB
stdin
Standard input is empty
stdout
27.09.2012;15:30:17;12,562;3,231
27.09.2012;15:30:17;12,125;3,144
27.09.2012;15:30:17;12,767;3,145
27.09.2012;15:30:18;12,660;3,260