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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Error Caracteres (SOLUCIONADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Error Caracteres (SOLUCIONADO)  (Leído 3,802 veces)
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
[C] Error Caracteres (SOLUCIONADO)
« en: 19 Abril 2013, 21:27 pm »

Hola, estoy intentando hacer un programa que por ejemplo escribas una cadena, y a esa cadena sumarle un carácter, es decir, lea carácter a carácter, y lo muestre por pantalla, pero sumándole un carácter..

Explicación:

Citar
Cadena Origen: "Hola que tal"
Citar
Cadena Final: "Ipmb rvf ubm"

Pero el resultado es este:
Citar
Cadena Origen: "Hola que tal"
Citar
Cadena Final: "ipmbrvfubmmm"

Es decir, sube un carácter en toda la cadena, y los espacios los pone al final como la ultima letra...  :-\ :-\

Podríais decirme porque podría ser?

Saludos



« Última modificación: 20 Abril 2013, 18:15 pm por MeCraniDOS » En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: [C] Error Caracteres
« Respuesta #1 en: 19 Abril 2013, 21:27 pm »

Si subes tu código, sería de ayuda  ;-)


En línea

- Pásate por mi web -
https://codeisc.com
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [C] Error Caracteres
« Respuesta #2 en: 19 Abril 2013, 21:56 pm »

Pues a mí no me da ese problema:

Código
  1. Ipmb rvf ubm

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.    int i ;
  5.    char frase[100]="Hola que tal";
  6.    //printf("Escribe una frase: ");
  7.    //scanf("%s",&frase);
  8.    for (i=0;frase[i]!='\0';i++){
  9.          if (frase[i]!=' ')
  10.            frase[i]+=1;
  11.    }
  12.    printf("%s", frase);
  13.    return 0;
  14. }
  15.  

Saluditos!. ....
En línea

MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C] Error Caracteres
« Respuesta #3 en: 19 Abril 2013, 22:17 pm »

Pues a mí no me da ese problema:

Mi código es este, bueno, la parte en la que me da ese error:

Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <io.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(void)
  9. {
  10.   /* char cadena[20];
  11.  
  12.     int n;
  13.  
  14. printf("Escriba una frase\n");
  15. gets(cadena);
  16. printf("Cadena con caracter sumado\n");
  17.  
  18. for(n=0;n<19;n++)
  19.     {
  20.         printf("%c", cadena[n] + 1);
  21.  
  22.     }
  23.  
  24.     getchar(); */
  25.  
  26. string Nombre;
  27. string Final;
  28.  
  29.  
  30.    printf("Escribe el nombre del archivo que deseas abrir: ");
  31.    getline(cin,Nombre);
  32.  
  33.    ifstream fichero_original;
  34.    ofstream fichero_final;
  35.  
  36.  
  37.        char caracter1, caracter2;
  38.  
  39. fichero_original.open(Nombre.c_str(), ios::binary);
  40.  
  41. Nombre += "_Char.txt";
  42. Final = Nombre;
  43. fichero_final.open(Final.c_str(), ofstream::binary);
  44.  
  45.  
  46. fichero_original.seekg(0,ios::end);
  47. unsigned long Tamanyo = fichero_original.tellg();
  48. fichero_original.seekg(0);
  49.  
  50. for (unsigned int i = 0;i<Tamanyo;i++)
  51. {
  52.    fichero_original>>caracter1;
  53.    caracter2 = caracter1 + 1;
  54.        fichero_final<<caracter2;
  55. }
  56.  
  57. fichero_original.close();
  58.    fichero_final.close();
  59. }

Lo que hay en el comentario, entre /* */ no me da ningún problema, pero cuando abro un archivo si, al código le he quitado mucha cosa que no se necesita  :silbar: :silbar:

Saludos

PD: Es una mezla de C y C++  :silbar:
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: [C] Error Caracteres
« Respuesta #4 en: 20 Abril 2013, 02:12 am »

parece una mezcla imprudente de c con c++  :P, lo podés hacer en C? por ejemplo ya lo hicieron anteriormente (sin la parte de abrir un archivo de texto).

...
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.    int i ;
  5.    char frase[100]="Hola que tal";
  6.    //printf("Escribe una frase: ");
  7.    //scanf("%s",&frase);
  8.    for (i=0;frase[i]!='\0';i++){
  9.          if (frase[i]!=' ')
  10.            frase[i]+=1;
  11.    }
  12.    printf("%s", frase);
  13.    return 0;
  14. }
  15.  
...

« Última modificación: 20 Abril 2013, 02:14 am por 85 » En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C] Error Caracteres
« Respuesta #5 en: 20 Abril 2013, 11:12 am »

Esque lo que necesito es abriendo el fichero, porque de la otra manera si que funciona, pero al hacerlo en un txt me borra los espacios...  :-\ :-\
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [C] Error Caracteres
« Respuesta #6 en: 20 Abril 2013, 12:06 pm »

Hola MeCrani xD.

Cambia el bucle for para que no modifique espacios:

Código
  1. for (unsigned int i = 0;i<Tamanyo;i++)
  2. {
  3. fichero_original>>caracter1;
  4.  
  5.        if (caracter1 != ' ') // Si no es un espacio
  6.    caracter2 = caracter1 + 1;
  7.  
  8.        fichero_final<<caracter2;
  9. }
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [C] Error Caracteres
« Respuesta #7 en: 20 Abril 2013, 16:26 pm »

Lo que hay en el comentario, entre /* */ no me da ningún problema, pero cuando abro un archivo si [...]

PD: Es una mezla de C y C++  :silbar:
Como ya te comentaron no es una buena idea mezclar C y C++, mejor hacerlo todo en este ultimo. Para ello puedes utilizar los operadores >> y <<, también se debe utilizar noskipws para procesar todo el contenido del archivo de entrada incluyendo el espacio blanco.

Un programa de ejemplo:
Código
  1. #include <iostream>
  2. using std::noskipws;
  3. using std::cin;
  4. using std::cout;
  5.  
  6. #include <fstream>
  7. using std::ifstream;
  8. using std::ofstream;
  9.  
  10. #include <string>
  11. using std::string;
  12.  
  13. #include <cctype>
  14. using std::isspace;
  15.  
  16. int main()
  17. {
  18.   string nom_entrada;
  19.   cout << "Nombre del archivo de entrada: ";
  20.   getline(cin, nom_entrada);
  21.  
  22.   ifstream entrada(nom_entrada.c_str());
  23.   noskipws(entrada);
  24.  
  25.   string nom_salida = nom_entrada + "_Char.txt";
  26.   ofstream salida(nom_salida.c_str());
  27.  
  28.   for (unsigned char ch; entrada >> ch; salida << ch)
  29.      if (!isspace(ch))
  30.         ch++;
  31.  
  32.   entrada.close();
  33.   salida.close();
  34.  
  35.   return 0;
  36. }

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
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C] Error Caracteres
« Respuesta #8 en: 20 Abril 2013, 18:15 pm »

Hola amchacon  ;-),

Gracias a todos por las respuestas, ya solucioné el error  :silbar:

Saludos
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Problema sustituyendo carácteres.
.NET (C#, VB.NET, ASP)
TheKillerWantsYou 2 2,639 Último mensaje 25 Julio 2009, 20:46 pm
por TheKillerWantsYou
Insertar caracteres en una variable [Batch] (SOLUCIONADO) « 1 2 »
Scripting
DA KILLER 12 9,208 Último mensaje 3 Julio 2010, 23:38 pm
por DA KILLER
[Solucionado] límite de carácteres en textbox
.NET (C#, VB.NET, ASP)
Krizzz 6 10,819 Último mensaje 17 Septiembre 2010, 09:32 am
por Krizzz
Cadenas de caracteres solucionado
Programación General
malocha 0 1,695 Último mensaje 18 Julio 2011, 00:18 am
por malocha
Imprimir caracteres en C[Solucionado]
Programación C/C++
Senior++ 8 3,541 Último mensaje 7 Febrero 2013, 22:01 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines