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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  fprintf de una función en archivo (C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: fprintf de una función en archivo (C)  (Leído 2,062 veces)
andie13

Desconectado Desconectado

Mensajes: 29


Ver Perfil
fprintf de una función en archivo (C)
« en: 10 Noviembre 2016, 01:20 am »

¡Hola!
El problema planteado es el siguiente: leer un texto de un archivo y traducirlo a morse. Esa traducción debe guardarse en un archivo nuevo.

Mi problema es que no sé como hacer para que el texto ya traducido se imprima en el archivo. Tal y como está, permite escribir un texto cualquiera que determines de antemano, pero no el resultado de la función.

Y, ya que estamos, me gustaría saber por qué el bucle no traduce bien. Está bien hecho porque la función independiente funciona, pero en ese programa, no.

Muchas gracias de antemano.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cifrarmorse (char frase);

int main(int argc, char** argv){
    FILE *fichero,*fichero2;
    int i=0,a,b,vector[100];
    
     fichero=fopen("entrada7.txt","r");
    
    if(fichero==NULL){
        printf("Error.\n");
        exit(1);
    }
    else{
        printf("El contenido del archivo es:\n\t");
        while (feof(fichero) == 0){
            fgets(vector,100,fichero);    
            puts(vector);
        }
    }
 
    fclose(fichero);
    
    a=strlen(vector);
    for (i=0; i<a; i++){
        cifrarmorse(vector[i]);
        b=cifrarmorse(vector[i]);
    }
    printf("\n");
    
    fichero2=fopen("salida7","w+");
    if(fichero2==NULL){
        printf("Error.\n");
        exit(1);  
    }
    fprintf(fichero2,"IMPRIME LO QUE ESCRIBA AQUI");
    /*fprintf(FILE *salida7, char *w){*/
    fclose(fichero2);
    return 0;
}

int cifrarmorse (char frase){
    switch (frase){
        case 'a':
        case 'A': printf("·- ");
            break;
        case 'b':
        case 'B': printf("-··· ");
            break;
        case 'c':
        case 'C': printf("-·-· ");
            break;
        case 'd':
        case 'D': printf("-·· ");
            break;
        case 'e':
        case 'E': printf("· ");
            break;
        case 'f':
        case 'F': printf("··-· ");
            break;
        case 'g':
        case 'G': printf("--· ");
            break;
        case 'h':
        case 'H': printf("···· ");
            break;
        case 'i':
        case 'I': printf("·· ");
            break;
        case 'j':
        case 'J': printf("·--- ");
            break;
        case 'k':
        case 'K': printf("-·- ");
            break;
        case 'l':
        case 'L': printf("·-·· ");
            break;
        case 'm':
        case 'M': printf("-- ");
            break;
        case 'n':
        case 'N': printf("-· ");
            break;
        case 'o':
        case 'O': printf("--- ");
            break;
        case 'p':
        case 'P': printf("·--· ");
            break;
        case 'q':
        case 'Q': printf("--·- ");
            break;
        case 'r':
        case 'R': printf("·-· ");
            break;
        case 's':
        case 'S': printf("··· ");
            break;
        case 't':
        case 'T': printf("- ");
            break;
        case 'u':
        case 'U': printf("··- ");
            break;
        case 'v':
        case 'V': printf("···- ");
            break;
        case 'w':
        case 'W': printf("·-- ");
            break;
        case 'x':
        case 'X': printf("-··- ");
            break;
        case 'y':
        case 'Y': printf("-·-- ");
            break;
        case 'z':
        case 'Z': printf("--·· ");
            break;
        case '0': printf("----- ");
            break;
        case '1': printf("·---- ");
            break;
        case '2': printf("··--- ");
            break;
        case '3': printf("···-- ");
            break;
        case '4': printf("····- ");
            break;
        case '5': printf("····· ");
            break;
        case '6': printf("-···· ");
            break;
        case '7': printf("--··· ");
            break;
        case '8': printf("---·· ");
            break;
        case '9': printf("----· ");
            break;
        case '.': printf("·-·-·- ");
            break;
        case ',': printf("--··-- ");
            break;
        case '?': printf("··--·· ");
            break;
        case '"': printf("·-··-· ");
            break;
        case ' ': printf("   ");
            break;
    }        
}


En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: fprintf de una función en archivo (C)
« Respuesta #1 en: 16 Noviembre 2016, 23:09 pm »

primero tienes mal declarado tu vecot

int main(int argc, char** argv){
    FILE *fichero,*fichero2;
    int i=0,a,b, vector[100];

int main(int argc, char** argv){
    FILE *fichero,*fichero2;
    int i=0,a,b;
    char vector[100];


segundo tienes que emular los puntos

int cifrarmorse (char frase){
    switch (frase){
        case 'a':
        case 'A': printf("%c- ", 46);
            break;
        case 'b':
        case 'B': printf("-%c%c%c ", 46,46,46);
            break;


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
fprintf y fputs
Programación C/C++
Gr1nD3r 2 4,633 Último mensaje 16 Julio 2010, 19:57 pm
por nicolas_cof
funcion fprintf
Programación C/C++
flony 2 2,473 Último mensaje 19 Enero 2013, 02:57 am
por flony
Ayuda con fprintf
Programación C/C++
Luchoz95 8 3,616 Último mensaje 20 Abril 2013, 07:01 am
por Luchoz95
Ayuda con fprintf y fgets [Solucionado]
Programación C/C++
Luchoz95 5 4,480 Último mensaje 21 Abril 2013, 17:31 pm
por dato000
(Consulta) fprintf imprime carácter de fin de archivo (-1)
Programación C/C++
class_OpenGL 5 2,764 Último mensaje 2 Julio 2016, 12:48 pm
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines