elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿por que no funciona? y como areglaro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿por que no funciona? y como areglaro  (Leído 2,312 veces)
47anonimo74

Desconectado Desconectado

Mensajes: 18


Ver Perfil
¿por que no funciona? y como areglaro
« en: 7 Febrero 2014, 20:21 pm »

Buenas estaba mirando unos ejerciocios y consigo que compile tras unas llaves pero no soy capaz de que me haga lo deseado:

Código:
#include <iostream.h>				// Usamos: ios, cin, cout
#include <iomanip.h> // Usamos: resetiosflags

void Leer_Cadena(char * s) {
  cin >> resetiosflags(ios::skipws); // Para que no pase los caracteres blancos.
  for (int i= 0; cin >> s[i]; i++){ // Leer caracteres hasta el caracter nulo.
    if (s[i] == '\n') break;{
  s[i]= '\0'; }} // Pone el caracter de fin de cadena.
}

int StrLen(char * s) {
  char * s0= s;
  while (*s++);
  return s - s0 - 1;
}

int main() {
  char s[100]; // Buffer de capacidad de hasta 99 caracteres y '\0'. Si metemos m s caracteres hay posibilidad de 'cuelgue'

  cout << endl << "Introduce una cadena (termina con CTRL-Z o INTRO)" << endl;
  Leer_Cadena(s);
  cout << endl << "La cadena es: " << s << endl;
  cout << "Y su longitud es: " << StrLen(s);
  system("pause");
}

a ver si alguien es capaz de hacerlo funcionar y decirme por que no me imprime lo deseado, quizas sea el compilaodr uso dev C++


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ¿por que no funciona? y como areglaro
« Respuesta #1 en: 7 Febrero 2014, 20:49 pm »


* Te fallan los nombres de las librerías, además te faltan un par de ellas.

* Te has hecho un lío con las llaves del for y el break.

* Te falta el return de main.

Una salida con las correcciones que te propongo:


Citar

Introduce una cadena (termina con CTRL-Z o INTRO)
leosansan 123 456 47anonimo74

La cadena es: leosansan 123 456 47anonimo74
Y su longitud es: 29
Presione una tecla para continuar . . .


Código
  1. #include <iostream> // Usamos: ios, cin, cout
  2. #include <iomanip> // Usamos: resetiosflags
  3. #include <cstdlib>
  4. #include <cstring>
  5. using namespace std;
  6.  
  7. void Leer_Cadena(char * s) {
  8.  int i;
  9.  cin >> resetiosflags(ios::skipws); // Para que no pase los caracteres blancos.
  10.  for ( i= 0; cin >> s[i]; i++){// Leer caracteres hasta el caracter nulo.
  11.    if (s[i] == '\n')
  12.      break;
  13.  }
  14.  s[i]= '\0'; // Pone el caracter de fin de cadena.
  15. }
  16.  
  17. int StrLen(char * s) {
  18.  char * s0= s;
  19.  while (*s++);
  20.  return s - s0 - 1;
  21. }
  22.  
  23. int main() {
  24.  char s[100]; // Buffer de capacidad de hasta 99 caracteres y '\0'. Si metemos m s caracteres hay posibilidad de 'cuelgue'
  25.  
  26.  cout << endl << "Introduce una cadena (termina con CTRL-Z o INTRO)" << endl;
  27.  Leer_Cadena(s);
  28.  cout << endl << "La cadena es: " << s << endl;
  29.  cout << "Y su longitud es: " << StrLen(s)<< endl;
  30.  system("pause");
  31. return 0;
  32. }
  33.  

¡¡¡¡ Saluditos! ..... !!!!




En línea

47anonimo74

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: ¿por que no funciona? y como areglaro
« Respuesta #2 en: 9 Febrero 2014, 11:46 am »

muchas gracias por tu respuesta, claro a mi me compilaba y confiado que que funcionaba, ahora ya se un poco, mas pero el return 0 por lo general yo no o uso sera que siempre acabo poniendo un exit(0); antes de llegar.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ¿por que no funciona? y como areglaro
« Respuesta #3 en: 9 Febrero 2014, 15:55 pm »

el return 0 por lo general yo no o uso sera que siempre acabo poniendo un exit(0); antes de llegar.
En la función main no es necesario utilizar una llamada a la función exit para terminar el programa ya que una sentencia "return N;" tiene el mismo efecto.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como funciona el dbi
Hacking Wireless
XxTheCochixX 3 5,208 Último mensaje 20 Febrero 2011, 19:50 pm
por XxTheCochixX
¿Como funciona?
Electrónica
BerinGer 3 5,246 Último mensaje 12 Diciembre 2011, 02:22 am
por BerinGer
Como puedo analizar una extensión para ver como funciona?
Software
Di~OsK 1 2,423 Último mensaje 15 Enero 2012, 05:30 am
por Leyer
¿Cómo funciona una pantalla táctil capacitiva? Y como repararla.
Dispositivos Móviles (PDA's, Smartphones, Tablets)
NikNitro! 0 3,761 Último mensaje 15 Noviembre 2012, 13:35 pm
por NikNitro!
¿Qué es un troyano, cómo funciona y cómo podemos protegernos?
Análisis y Diseño de Malware
wolfbcn 3 3,866 Último mensaje 5 Junio 2013, 22:15 pm
por kub0x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines