hola ... me podrían dar una mano con este pekeñin que hice en vb y no puedo traducir.
Codigo VB 6.0:
Dim StrCadena As String
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
StrCadena = "1"
List1.AddItem "1"
End Sub
Private Sub Timer1_Timer()
Dim i As Integer
Dim IntCont As Integer: IntCont = 0
Dim ChrNum As String
Dim StrAux As String: StrAux = ""
ChrNum = Mid(StrCadena, 1, 1)
For i = 1 To Len(StrCadena)
If ChrNum = Mid(StrCadena, i, 1) Then
IntCont = IntCont + 1
Else
StrAux = StrAux + CStr(IntCont) + ChrNum
IntCont = 1
ChrNum = Mid(StrCadena, i, 1)
End If
Next i
StrCadena = StrAux + CStr(IntCont) + ChrNum
List1.AddItem StrCadena
List1.Selected(List1.ListCount - 1) = True
List1.Selected(List1.ListCount - 1) = False
End Sub
El código que llevo hecho en c++:
#include <string>
#include <iostream>
using namespace std;
string IntToStr(int numero)
{
stringstream cvz;
cvz << numero;
return cvz.str();
}
int main(void)
{
int i=0;
int IntCont = 0;
char ChrNum;
string StrCadena ="1";
string StrAux = "";
ChrNum = StrCadena[i];
for (;;)
{
for (i=1; i <= StrCadena.size() ;i++)
{
if (ChrNum == char(StrCadena[i]))
{
IntCont++;
}
else
{
StrAux += IntToStr(IntCont) + ChrNum;
ChrNum = StrCadena[i];
IntCont = 1;
}
}
StrCadena = StrAux + IntToStr(IntCont) + ChrNum;
cout << StrCadena << endl;
};
return 0;
}
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 :-*
¿?
alguien me echa una mano ?
Hola
Has intentado con esto? www.vbto.net (http://www.vbto.net)
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"
Citarstring StrAux = "";
Es un String!
Citar
StrAux += IntToStr(IntCont) + ChrNum;
E intentas sumarlo con un INT?
y no entiendo que quieres hacer con esto
Citarfor (;;)
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.
"+" 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
_Иōҳ :
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
Citarel 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++