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


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Como cuento cuantos numeros tiene un archivo en (C) en: 12 Noviembre 2016, 17:51 pm
Hola, me gustaría saber cómo determino la cantidad de numeros que tiene un archivo de texto. Ejemplo: 2 3 14 67 12, "5".
12  Programación / Programación C/C++ / Contar palabras en C en: 12 Noviembre 2016, 13:54 pm
SOLUCIONADO.
13  Programación / Programación C/C++ / 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;
    }        
}
14  Programación / Programación C/C++ / Estructuras en C (ISBN) en: 9 Noviembre 2016, 00:55 am
¡Hola!
Estoy intentando hacer un programa que calcule digito de control de un codigo ISBN introducido por el usuario, a través de 3 campos diferenciados, utilizando estructuras. Para calcular el digito de control hay que ir multiplicando cada cifra por su posición, y al final hallar el resultado de la suma módulo 11. Si el digito es 10, se pone X.

Lo que no entiendo es:
a) En el programa está indicado la longitud del vector introducido para hacer los cálculos, pero quiero hacerlo de modo genérico, el caso es que no sé como indicarlo.
b) No controlo bien las estructuras y el hecho de convertirlas de char a int etc.


He conseguido escribir el código casi totalmente, con la excepción de la función main, que soy consciente de que no está bien.

¡Muchas gracias!

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    
struct ISBN{
    char camp1[6];          /*Grupo*/
    char camp2[8];          /*Editor*/
    char camp3[8];          /*Titulo*/
    int control;        /*Digito de control*/
};

 struct ISBN controlisbn(char c1[], char c2[], char c3[]){
    int control=0,i=0;
    struct ISBN a;
    for (i=0; i<1; i++){
        a.camp1[i]=c1[i];
    }
    for (i=0; i<5; i++){
        a.camp2[i]=c2[i];
    }
    for (i=0; i<9; i++){
        a.camp3[i]=c3[i];
    }
    for (i=0; i<1; i++){
        control+=c1[i]*(i+1);
    }
    for (i=0; i<5; i++){
        control+=c2[i]*(i+3);
        }
    for (i=0; i<9; i++){
        control+=c3[i]*(i+8);
    }
    
    a.control=control%11;
    return(a);
};
void main(){
    int a,b,c;
    struct ISBN libro;
    int x;
    
    printf("Intruduzca primer campo del ISBN: ");
    gets(a);
    printf("Intruduzca segundo campo del ISBN: ");
    gets(b);
    printf("Intruduzca tercer campo del ISBN: ");
    gets(c);
    
    strcpy(a,libro.camp1);
    strcpy(b,libro.camp2);
    strcpy(c,libro.camp3);
 
        
    x=controlisbn;
    if (x==10){
        printf("\nCaracter de control es X");
    }
    else{
        printf("\nCaracter de control es %d", x);
    }
}

//Ejemplo: 1-2345-6789----7
15  Programación / Programación C/C++ / Morse - ¿donde está mal? en: 7 Noviembre 2016, 01:16 am
Hola, estaba intentando crear un programa sencillito para traducir un texto a morse. El caso es que no sé que está mal. El código es el siguiente:
(Por curiosidad, ¿cómo podría conseguir realizar el mismo algorirmo sin la biblitoecastring.h)
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void cifrarmorse (char frase[], int a){    
  6.    char letra;
  7.  
  8.    switch (letra){
  9.        case 'a':
  10.        case 'A': printf("·- ");
  11.            break;
  12.        case 'b':
  13.        case 'B': printf("-··· ");
  14.            break;
  15.        case 'c':
  16.        case 'C': printf("-·-·" );
  17.            break;
  18.        case 'd':
  19.        case 'D': printf("-·· ");
  20.            break;
  21.        case 'e':
  22.        case 'E': printf("· ");
  23.            break;
  24.        case 'f':
  25.        case 'F': printf("··-· ");
  26.            break;
  27.        case 'g':
  28.        case 'G': printf("--· ");
  29.            break;
  30.        case 'h':
  31.        case 'H': printf("···· ");
  32.            break;
  33.        case 'i':
  34.        case 'I': printf("·· ");
  35.            break;
  36.        case 'j':
  37.        case 'J': printf("·--- ");
  38.            break;
  39.        case 'k':
  40.        case 'K': printf("-·- ");
  41.            break;
  42.        case 'l':
  43.        case 'L': printf("·-·· ");
  44.            break;
  45.        case 'm':
  46.        case 'M': printf("-- ");
  47.            break;
  48.        case 'n':
  49.        case 'N': printf("-· ");
  50.            break;
  51.        case 'o':
  52.        case 'O': printf("--- ");
  53.            break;
  54.        case 'p':
  55.        case 'P': printf("·--· ");
  56.            break;
  57.        case 'q':
  58.        case 'Q': printf("--·- ");
  59.            break;
  60.        case 'r':
  61.        case 'R': printf("·-· ");
  62.            break;
  63.        case 's':
  64.        case 'S': printf("··· ");
  65.            break;
  66.        case 't':
  67.        case 'T': printf("- ");
  68.            break;
  69.        case 'u':
  70.        case 'U': printf("··- ");
  71.            break;
  72.        case 'v':
  73.        case 'V': printf("···- ");
  74.            break;
  75.        case 'w':
  76.        case 'W': printf("·-- ");
  77.            break;
  78.        case 'x':
  79.        case 'X': printf("-··- ");
  80.            break;
  81.        case 'y':
  82.        case 'Y': printf("-·-- ");
  83.            break;
  84.        case 'z':
  85.        case 'Z': printf("--·· ");
  86.            break;
  87.        case '0': printf("----- ");
  88.            break;
  89.        case '1': printf("·---- ");
  90.            break;
  91.        case '2': printf("··--- ");
  92.            break;
  93.        case '3': printf("···-- ");
  94.            break;
  95.        case '4': printf("····- ");
  96.            break;
  97.        case '5': printf("····· ");
  98.            break;
  99.        case '6': printf("-···· ");
  100.            break;
  101.        case '7': printf("--··· ");
  102.            break;
  103.        case '8': printf("---·· ");
  104.            break;
  105.        case '9': printf("----· ");
  106.            break;
  107.        case '.': printf("·-·-·- ");
  108.            break;
  109.        case ',': printf("--··-- ");
  110.            break;
  111.        case '?': printf("··--·· ");
  112.            break;
  113.        case '"': printf("·-··-· ");
  114.            break;
  115.        case ' ': printf("   ");
  116.            break;
  117.    }        
  118. }
  119.  
  120. int main(int argc, char** argv){
  121.    int a;
  122.    char frase[95];
  123.    printf("Introduzca una frase:\n");
  124.    gets(frase);
  125.    a=strlen(frase);
  126.    cifrarmorse(frase,a);
  127.  
  128.    return 0;
  129. }
  130.  
  131.  
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines