Проблемы с getline при работе с файлами и хэшированием ( по алгоритму MD5)

#include <iostream>
#include "md5.h"
#include <string>
#include <fstream>

using namespace std;

void menu()
{
    string info[3];

    info[0] = "Внести данные в командную строку : 0"; 
    info[1] = "Создать файл и внести в него данные : 1"; 
    info[2] = "Внести данные с файла : 2";

    for (string i : info)
    {
        cout << i << endl;
    }
}

int action()
{
    int var;

    cout << endl << "Выберите действие которое вам нужно : ";

    cin >> var;

    while (1)
    {
        switch (var)
        {

        case 0:
        {
            string information;
            getline(cin, information);
            cout << "*Hash of the encrypted inf* : " << md5(information) << endl;
        }break;

        case 1:
        {
            ofstream fout;
            fout.open("firsthash.txt");

            if (!fout.is_open())
            {
                cout << "File can not be open";
            }
            else
            {
                string inf;
                getline(cin, inf);
                fout << inf;
            }
            fout.close();
        }break;

        case 2:
        {
            ifstream fin;
            fin.open("firsthash.txt");

            if (!fin.is_open())
            {
                cout << "File can not be open";
            }
            else
            {
                string inf;

                while (!fin.eof())
                {
                    getline(fin, inf);
                    cout << md5(inf) << endl;
                }
            }
            fin.close();
        }break;

        case  3:
        {
            return 0;
        }break;

        default:
        {
            cout << "Error..." << endl;
        }break;

        }
    }
}

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    menu();
    action();
    return 0;
}

( Первый раз здесь, так что прошу прощения за "топорность" задания вопросов и описания проблем ) Опишу проблемы с которыми столкнулся : Пункт 0 При выборе действия 0 т.е. "ввести данные вручную в командной строке и захэшировать их", после выбора самого действия т.е. ввода 0 выводится абсолютно непонятное мне хэш значение, после вывода этого неидентифицированного хэш значения код касательно этого действия работает корректно. ( Внести данные в командную строку : 0 Создать файл и внести в него данные : 1 Внести данные с файла : 2

Выберите действие которое вам нужно : 0 Hash of the encrypted inf : d41d8cd98f00b204e9800998ecf8427e 0 Hash of the encrypted inf : cfcd208495d565ef66e7dff9f98764da ) Пункт 1 При выборе действия 1 т.е. "создать файл и внести в него данные", создаётся файл, но данные в него не передаются, остаётся пустым. ( Внести данные в командную строку : 0 Создать файл и внести в него данные : 1 Внести данные с файла : 2

Выберите действие которое вам нужно : 1 ) Пункт 2 При выборе действия 2 т.е. "внести данные с файла и захэшировать их", при условии что вручную вы заполните .txt файл, выводится корректное хэш значение, но ,к сожалению, выводится оно как бесконечный цикл. ( Внести данные в командную строку : 0 Создать файл и внести в него данные : 1 Внести данные с файла : 2

Выберите действие которое вам нужно : 2 d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e )


Ответы (0 шт):