Buenas! Tengo que hacer un proyecto del cole! Apenas lo estoy empezando! Voy bien! Solo que necesito anidar un for con un while! al hacerlo y ejecutarlo se queda pidiendo datos de entrada y no hace mas nada! Si dejo el while solo si corre perfecto pero necesito que el while se repita! Aqui les dejo el code a ver si me pueden ayudar! Gracias
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string punto(string parrafo){
int tamano, x=0, x1, x2, x3, x4;
string str, inicial, b1, b2, b3;
tamano=parrafo.size();
do {
while (x<=tamano && str!="."){
str=parrafo.substr(x, 1);
x=x+1;}
x1=x-2;
b1=parrafo.substr(x1, 1);
if (b1==" "){
parrafo=parrafo.erase(x1, 1);
x=x-1;}
x3=x-2;
b2=parrafo.substr(x3, 1);
if (b2== "," || b2==";"){
parrafo=parrafo.insert(x3," <<");
x4=x1+4;
parrafo=parrafo.insert(x4,">>");
x=x+5;}
b3=parrafo.substr(x, 1);
if (b3!=" "){
parrafo=parrafo.insert(x, " ");}
x2=x+1;
inicial=parrafo.substr(x2, 1);
transform(inicial.begin(),inicial.end(), inicial.begin(), ::toupper);
parrafo=parrafo.replace(x2, 1, inicial);
tamano=parrafo.size();
}
while (!(x==tamano));
return parrafo;
}
int main(){
string parrafo, parrafo1;
cout<<"Introduzca un texto"<<endl;
getline(cin, parrafo);
parrafo1=punto(parrafo);
cout<<parrafo1<<endl;
return 0;
}
Haz debug y fíjate en el tamaño de la variable x, porque yo diría que formas un bucle infinito y nunca retornas el parrafo.
Cita de: Isótopo en 11 Diciembre 2011, 16:45 PM
Haz debug y fíjate en el tamaño de la variable x, porque yo diría que formas un bucle infinito y nunca retornas el parrafo.
Buenas amigo! Gracias por la ayuda! Pero me podrias decir como hacer eso?
Pues depende del compilador que estés usando. Debe de tener alguna opción que ejecute el código con pausas en cada línea para ver el desarrollo del programa. Así puedes ver el valor de cada variable y donde se te atasca exáctamente.