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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Atila
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 12
#1

Неправильная передача данных из одного файла в другой - C++

02.05.2013, 20:14. Просмотров 330. Ответов 1
Метки нет (Все метки)

Здравствуйте!

Возникли проблемы с записью информации в файл.

Часть кода:
C++
1
2
3
4
5
6
7
8
9
10
unsigned char bady, text, tx_bt;    
FILE *fp_in, *fp_out, *fp_ms;        
 
   fread(&text, sizeof(char), 1, fp_ms);
 
   fread(&bady, sizeof(char), 1, fp_in);
   bady = bady & 0xFC;        // <-- Обнуление двух младших бит переменной bady
   tx_bt = text >> 6;         // <-- Запись двух старших бит переменной text в переменную tx_bt
   bady = bady + tx_bt;       // <-- Замена двух младших бит переменной bady на два старших бита переменной text
   fwrite(&bady, sizeof(char), 1, fp_out);
Переменная bady записывается в файл fp_out, как будто девятая строка не выполняется, т.е. с двумя нулями на конце.
В чём может быть проблема?

Весь код:
Кликните здесь для просмотра всего текста

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
#include <iostream> 
#include <stdio.h>
#include <cstdlib>
 
using namespace std; 
 
int main ()
{  
 unsigned char bady, text, tx_bt;               
 long i;
 unsigned char adres[4];
 
 FILE *fp_in, *fp_out, *fp_ms;    
 
 fp_in = fopen("1.bmp","rb");
 fp_out = fopen("2.bmp","wb");
 
 fp_ms = fopen("1.txt","rb");
 
 fseek(fp_in, 10, SEEK_SET);                    
 
 fread(&adres, sizeof(char), 4, fp_in); 
 
 i = *((long*)&adres);
 
 fseek(fp_in, 0, SEEK_SET);
 
 while(!feof(fp_in))
 {
 
  if (i <= ftell(fp_in) && !feof(fp_ms))
  {
    
   while(!feof(fp_ms))
   {
    fread(&text, sizeof(char), 1, fp_ms);
 
    fread(&bady, sizeof(char), 1, fp_in);
    bady = bady & 0xFC;
    tx_bt = text >> 6;
    bady = bady + tx_bt;
    fwrite(&bady, sizeof(char), 1, fp_out);
 
    fread(&bady, sizeof(char), 1, fp_in);
    bady = bady & 0xFC;
    tx_bt = text << 2;
    tx_bt = tx_bt >> 6;
    bady = bady + tx_bt;
    fwrite(&bady, sizeof(char), 1, fp_out);
 
    fread(&bady, sizeof(char), 1, fp_in);
    bady = bady & 0xFC;
    tx_bt = text << 4;
    tx_bt = tx_bt >> 6;
    bady = bady + tx_bt;
    fwrite(&bady, sizeof(char), 1, fp_out);
 
    fread(&bady, sizeof(char), 1, fp_in);
    bady = bady & 0xFC;
    tx_bt = text << 6;
    tx_bt = tx_bt >> 6;
    bady = bady + tx_bt;
    fwrite(&bady, sizeof(char), 1, fp_out);
    
   }
 
  }
   
  else
  {
 
   fread(&bady, sizeof(char), 1, fp_in);
   fwrite(&bady, sizeof(char), 1, fp_out);
 
  }
  
 }
 
 fclose(fp_in);
 fclose(fp_out);
 fclose(fp_ms);
 
 system("pause");
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 20:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильная передача данных из одного файла в другой (C++):

Перенос данных из одного файла в другой - C++
День добрый! Помогите решить задачу! Условие: &quot;Сформировать файл, содержащий записи по результатам сдачи очередного экзамена...

Из одного файла данных получить два массива (один с числами, другой - с буквами) - C++
Имеется файл данных, где первая колонка - буквы, а остальные три колонки - числа. Надо записать буквы в один массив, а числа - в другой...

Передача массива одного класса в другой С++ - C++
Доброго времени суток. Столкнулся с проблемой, есть класс который заполняет массив, этот массив нужен в другом классе. Как мне передать...

Передача динамического массива из одного метода в другой - C++
Здравствуйте! Ребята подскажите по такому вопросу. Пытаюсь передать динамический двумерный массив из одного метода класса в другой метод...

Передача исключения из одного catch-блока в другой - C++
Всем привет! Начал тут изучать исключения в С++, хотел бы кое-что прояснить. Если я всё правильно понял, процесс обработки исключений...

Не работает передача объекта из одного класса в другой через return - C++
Есть 2 объекта класс Reading ,text и line,которые посредством методов std::string outstr() std::string outch() соответственно должны...

1
Atila
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 12
03.05.2013, 21:00  [ТС] #2
Актуально
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2013, 21:00
Привет! Вот еще темы с ответами:

Передача значения параметра из одного класса в другой при разных хедерах - C++
Всем здравствуйте! Застопорился над одним вопросом... Был бы очень благодарен за помощь! Суть: Нужно передать значение параметра из...

Написать программу записи содержимого из одного файла в другой : Тип файла текстовый - C++
#include &quot;StdAfx.h&quot; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main () { FILE...

Передача файла из одного ПК к другому - C++
Мне нужно, чтоб я мог передавать файлы через com порт на другой комп'ютер через програму, но не знаю даже примерно как реализовать это.Я не...

из одного файла в другой - C++
подскажите пожалуйста, как скопировать полностью бит в бит из одного exe в другой exe? Чтото не получается :) int main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru