Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: <[(x)]> en 20 Octubre 2011, 04:33 am



Título: ayuda→traducir de VB 6.0 a C++
Publicado por: <[(x)]> en 20 Octubre 2011, 04:33 am
hola ... me podrían dar una mano con este pekeñin que hice en vb y no puedo traducir.

Codigo VB 6.0:
Código
  1. Dim StrCadena As String
  2.  
  3. Private Sub Command1_Click()
  4. Timer1.Enabled = True
  5. End Sub
  6.  
  7. Private Sub Form_Load()
  8.  
  9. StrCadena = "1"
  10. List1.AddItem "1"
  11. End Sub
  12.  
  13. Private Sub Timer1_Timer()
  14.  
  15. Dim i As Integer
  16. Dim IntCont As Integer: IntCont = 0
  17.  
  18. Dim ChrNum As String
  19.  
  20. Dim StrAux As String: StrAux = ""
  21.  
  22. ChrNum = Mid(StrCadena, 1, 1)
  23.  
  24. For i = 1 To Len(StrCadena)
  25.  
  26.    If ChrNum = Mid(StrCadena, i, 1) Then
  27.  
  28.      IntCont = IntCont + 1
  29.    Else
  30.  
  31.      StrAux = StrAux + CStr(IntCont) + ChrNum
  32.      IntCont = 1
  33.      ChrNum = Mid(StrCadena, i, 1)
  34.    End If
  35. Next i
  36.  
  37. StrCadena = StrAux + CStr(IntCont) + ChrNum
  38. List1.AddItem StrCadena
  39.  
  40. List1.Selected(List1.ListCount - 1) = True
  41. List1.Selected(List1.ListCount - 1) = False
  42. End Sub
  43.  


El código que llevo hecho en c++:
Código
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. string IntToStr(int numero)
  6. {
  7.  stringstream cvz;
  8.  cvz << numero;
  9.  return cvz.str();
  10. }
  11.  
  12. int main(void)
  13. {
  14. int i=0;
  15. int IntCont = 0;
  16. char ChrNum;
  17.  
  18. string StrCadena ="1";
  19. string StrAux = "";
  20.  
  21. ChrNum =  StrCadena[i];
  22.  
  23. for (;;)
  24. {
  25.  
  26.   for (i=1; i <= StrCadena.size() ;i++)
  27.   {
  28.     if (ChrNum ==  char(StrCadena[i]))
  29.      {
  30.        IntCont++;
  31.      }
  32.      else
  33.      {
  34.        StrAux += IntToStr(IntCont) + ChrNum;
  35.        ChrNum =  StrCadena[i];
  36.        IntCont = 1;
  37.      }
  38.    }
  39.    StrCadena = StrAux + IntToStr(IntCont) + ChrNum;
  40.    cout << StrCadena << endl;
  41.  
  42. };
  43.  
  44. return 0;
  45. }


Salida de $ g++ -o a a.cpp:
Citar
a.cpp: En la función ‘std::string IntToStr(int)’:
a.cpp:8:16: error: el agregado ‘std::stringstream cvz’ tiene un tipo incompleto y no se puede definir


desde ya gracias por su tiempo  :-*


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: <[(x)]> en 20 Octubre 2011, 17:49 pm
¿?


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: <[(x)]> en 20 Octubre 2011, 21:41 pm
alguien me echa una mano ?


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: ThunderCls en 21 Octubre 2011, 16:51 pm
Hola
Has intentado con esto? www.vbto.net (http://www.vbto.net)


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: Иōҳ en 21 Octubre 2011, 22:32 pm
vas 198 post, y no sabes que existe el Botón EDIT?, .__.

No programo en c++, pero creo que esto es básico. "Tipos de Datos"

Citar
string StrAux = "";
Es un String!

Citar
StrAux += IntToStr(IntCont) + ChrNum;
E intentas sumarlo con un INT?

y no entiendo que quieres hacer con esto
Citar
for (;;)

Un bucle infinto?, si es así porque no usar WHILE?, y si es lo que estoy pensando (bucle infinito), creo que no va hacer para nada eficiente hacerlo.

Nox.


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: oPen syLar en 22 Octubre 2011, 02:11 am
"+" en C++ admite "+" ¿?


Porque no intentas cambiar el tipo de dato "string" a "char" y lo manejas con strncpy/strncat ¿? estas uniendo un "string" con un int.. Y eso no es valido en C  a menos que utilices funciones como sprintf


Título: Re: ayuda→traducir de VB 6.0 a C++
Publicado por: <[(x)]> en 22 Octubre 2011, 04:04 am
_Иōҳ :

Código
  1. StrAux += IntToStr(IntCont) + ChrNum;

la clase string sobrecarga estos operadores deforma que se pueda agregar y concatenar cadenas.

el for infinito fue propósito xD.

Por el momento tengo problemas con el erro
Citar
el agregado ‘std::stringstream cvz’ tiene un tipo incompleto y no se puede definir

si alguien me podría decir como solucionarlo echarme una mano o algo...

trabajo en linux con gcc y en windows con dev++