Форум программистов, компьютерный форум CyberForum.ru

Проблема при считывании из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файлом и массивом http://www.cyberforum.ru/cpp-beginners/thread187242.html
Нужно заполнить массив числами из файла, но почему-то выдает ошибку. Вот фрагмент программы. Помогите разобраться. FILE *f; fopen_s(&f,"mas.txt","rt"); if(f==NULL) //Если файл пуст { cout<<"Ошибка чтения файла. Программа будет завершена."<<endl; return 0; }
C++ Нахождение седловых точек матрицы Доброго вечера всем.Не могу справиться с заданием. Если кто-то сможет помочь сделать это задание, буду очень благодарен в помощи Для матрицы 7х7 определить координаты всех ее седловых точек. Елемент матрицы седловая точка, если этот елемент самый большой в строке и одновременно - самым маленький в столбце. http://www.cyberforum.ru/cpp-beginners/thread187239.html
C++ Отсортировать список студентов по принадлежности к кафедре
написать задачу используя структуры struct{}; Ввести данные в табл. 2. Отсортировать список студентов по принадлежности к кафедре. В рамках кафедры разместить информацию в алфавитном порядке. Результаты сортировки в табл. 2. кто может решить напишите пожалуйста, заранее благодарен
C++ Сортировка с графическим интерфейсом
Здравствуйте, кто может помочь мне: Нужна программа, с граф. Инрефейсов, котороя показывает сортировку массива. Все поточные элементы должны быть отображены на форме Саму сортировку пузырьком знаю А как сделать с графическим интерф. Кто может помочь, буду благодарен //Задание 1 #include "iostream.h" #include "math.h" float a; //обьявление массива int I;// обьявление...
C++ где указать путь к файлам http://www.cyberforum.ru/cpp-beginners/thread187218.html
Есть программа по коду хоффмана. Нужно чтобы какие-либо данные можно было взять out.txt и уже обработанную при помощи кода хоффмана вернуть в in.txt. Программка написана. не могу вспомнить где писать в свойствах проекта путь к этим txt файлам. Использую Visual C++ 2008. english
C++ С++/алгоритм/Тема:"Анализ производительности алгоритмов" Преобразовать одномерный массив,состоящий из n целых элементов,таким образом,чтобы сначала располагались все положительные элементы,а потом - все отрицательные (Элементы,равные 0,считать положительными). подробнее

Показать сообщение отдельно
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
08.11.2010, 22:56     Проблема при считывании из файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*Программа шифрует/дешифрует любой файл по заданному паролю.
Тестировалась на .avi, .doc, .txt, mp3.
Выполнил .*/
#include <iostream>
#include <conio.h>
#include <fstream>
#include <cstring>
#include <stdio.h>
 
using namespace std;
/*------key1 - ключ. пароль///filename1[30] - имя файла на входе
filename2[30] - имя файла на выходе///k1 - длина ключа
coding1,2,3 - переменные для преобразования исходного символа*/
int main()
{
    FILE *fp1, *fp2, *fp3, *fp4;//объявляем потоки
    char filename1[30], filename2[30],key1[20];
    int n=0,m=0,k1;
    unsigned char code=0;
    int temp;
    int coding1, coding2, coding3, coding4, z;
    cout << "1 - Зашифровать файл.\n" << "2 - расшифровать файл\n";
    cin >> z;
    if(z==1)
    {
       cout << "Введите пароль для шифрования: ";
       cin >> key1;
       cout << "key = " << key1;
       cout << "\nВведите имя файла для шифрования: ";
       cin >> filename1;
       k1 = strlen(key1);//обработка ключа
       cout << "k1 = " << k1 << endl;
       for(int i=0;i<k1;i++)
       {
            code = (code + key1[i]);
       } 
       // m - вычисляется из ключа сложением по модулю 2^6
       for(int i=1;i<k1;i++)
       {
            m = (key1[i-1] + key1[i])%64;
       }
       cout << "m = " << m << endl;
       /*отрывает входной файл только для 
       чтения в бинарном режиме*/
       fp1 = fopen(filename1, "rb");
       if (!fp1)
       {
          cout << "Ошибка открытия файла\n";
          getch();
          exit(1);
       }
       cout << "\nВведите имя зашифрованного файла: ";
       cin >> filename2;
       /*открываем новый файл для записи
       в бинарном режиме*/
       fp2 = fopen(filename2, "wb");
       if (!fp2)
       {
          cout << "Ошибка открытия файла\n";
          getch();
          exit(1);
       }
       for(int i = 0;i<16;i++)
        {
       while((temp = getc(fp1)) != EOF)
       {
          //инвертируем биты
          coding1 = ~temp;
          //Исключающее ИЛИ
          coding2 = coding1^code;
          //Сложение
          coding3 = coding2 + code;
          //Исключающее ИЛИ с m
          coding4 = coding3^m;
 
          putc(coding4,fp2);
       };
       }
       fclose(fp1);
       fclose(fp2);
    }
    else
    {
        cout << "Введите пароль для расшифровки: ";
        cin >> key1;
        cout << "\nkey = " << key1;
        k1 = strlen(key1);
        cout << "\nk1 = " << k1 << endl;
        for(int i=0;i<k1;i++)
        {
            code = (code + key1[i]);
        } 
        for(int i=1;i<k1;i++)
        {
            m = (key1[i-1] + key1[i])%64;
        }
        cout << "m = " << m << endl;
        cout << "\nВведите имя файла для расшифрования: ";
        cin >> filename1;
        fp3 = fopen(filename1, "rb");
        if (!fp3)
        {
        cout << "Ошибка открытия файла\n";
        getch();
        exit(1);
        }
        cout << "\nВведите имя рашифрованного файла: ";
        cin >> filename2;
        fp4 = fopen(filename2, "wb");
        if (!fp4)
        {
           cout << "Ошибка открытия файла\n";
           getch();
           exit(1);
        }
        /*Запускаем цикл шифрования 16 раз*/
        for(int i = 0;i<16;i++)
        {
           while((temp = getc(fp3)) != EOF)
           {
               coding1 = temp^m;
               coding2 = coding1 - code;
               coding3 = coding2^code;
               coding4 = ~coding3;
               putc(coding4,fp4);
           };
        }
        fclose(fp3);
        fclose(fp4);
    }
    cout << "END\n";
    getch();
    return 0;
}
 
Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru