Криптографическая задача.

Тема в разделе "C/C++/C#", создана пользователем aaaaaa, 4 июл 2011.

  1. aaaaaa

    aaaaaa Гость

    Способ шифрования текста состоит в замене каждого символа алфавита на соответствующий ему порядковый номер. Однозначные номера, чтобы избежать путаницы, записываются так: 01, 02, …, 09. Расшифровать текст сообщения, хранящийся в файле. Результат сохранить в другом файле, продублировав его на экране.

    В общем, решил создать из цифр фаила массив вида x={"08","05","12"......} с помощью обьединения строк и добавления в массив.

    Программа крашится после вывода тескта фаила. Помогите, пожалуйста, найти ошибку, или подскажите другой способ решения. Заранее благодарен. :)
    Код (C++):
    #include <iostream>
    #include <fstream.h>
    #include <stdio.h>


    using namespace std;

    int main()
    {

    int j=0;
    int k=0;
    const int x=26;
    const int y=100;
    char* code[x]={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26"};
    char* decode[x] ={"a","b","c","d","e","f","g","h","i","g","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
    FILE *file = fopen("file.txt","r");
    FILE *outfile =fopen ("output.txt", "wb");
    char str[y];
    char *enter;
    while(!feof(file))
    {
    enter=fgets (str,y,file);
    }
    puts(str);
    int h =strlen(str);

    char* results[y];
    for (int i=0; i<h; i+=2)
    {
    k=i+1;
    const char* enterc=(const char*)enter[i];
    const char* enterca=(const char*)enter[k];
    j++;
    strcpy(results[j],enterc);
    results[j]=strcat(results[j],enterca);
    }
    for (int i=0; i<h; i++)
    {
    for (int g=0; g<x; g++)
    {
    if(results[i]==code[j])
    {
    results[i]=decode[j];
    }
    }
    }
    cout << endl;
    fprintf (outfile,"%s",results);
    printf ("%s",results);
    fclose(file);
    return 0;
    }
     
  2. Ivka

    Ivka Гость

    1) FILE *file = fopen("file.txt","r");
    FILE *outfile =fopen ("output.txt", "wb");
    вы так уверены, что файлы открываются нормально?
    ИМХО нужна проверка...

    2) enter=fgets (str,y,file);
    вы считываете по строчке и присваеваете enter , не добавляете, а присваиваете(вконце enter будеть иметь указатель на последнюю строкуб но никак не всю информацию с файла)...
     
  3. aaaaaa

    aaaaaa Гость

    Разобрался в ошибках. Всем спасибо :)
     
Загрузка...
Похожие Темы - Криптографическая задача
  1. Янчик
    Ответов:
    0
    Просмотров:
    480
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    781
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.117
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.105

Поделиться этой страницей