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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перекомпилировать программу http://www.cyberforum.ru/cpp-beginners/thread854400.html
Всем привет, есть программа которая написана под линукс, ее надо скомпилить чтоб работала под винду Помогите пожалуйста!!!
C++ Ошибка в поиске структуры в файле Условие: Реализовать задачу с двоичными файлами. Написать функцию, с помощью которой осуществляется первичный ввод информации с клавиатуры и дозапись в файл. При поиске сохраняйте выбранные записи в новый файл. Информационная запись о книге, выданной на руки абоненту, представляет собой структуру следующего вида: номер читательского билета, фамилия абонента, дата выдачи, срок возврата... http://www.cyberforum.ru/cpp-beginners/thread854392.html
Рекурсивная функция power(base, exponent) C++
Напишите рекурсивную функцию power(base, exponent), которая возвращала бы значение powerexponent Например, power (3, 4) = 3*3*3*3. Полагайте, что exponent – целое число, большее или равное 1. Подсказка: шаг рекурсии может использовать соотношение baseexponent = base*baseexponent-1 А завершение может иметь место, когда exponent равна 1, потому что base1=base и будьте добры коментарии к задаче
Найти самый посещаемый кинотеатр (массив из слов) C++
дравствуйте, помогите, пожалуйста, с с++, я его раньше не изучал, но пришлось начать изучать данный язык, столкнулся с такой проблемой. есть файл, причем в файл данной же программой записывается название кинотеатра, кол-во мест(котор проданы), категория и т.д. мне нужно по заданию найти самый посещаемый кинотеатр я хочу внести названия кинотеатров и кол-во мест которые были проданы в...
C++ Дружественная функция для класса http://www.cyberforum.ru/cpp-beginners/thread854364.html
Здравствуйте, имеется следующая задача: Базовый класс «СТУДЕНТ» описывает следующие данные о студентах университета: ФИО, год поступления, курс, номер группы, размер стипендии, оценки по n предметам. В состав класса входят следующие функции: виртуальный метод просмотра информации о студенте, функция-друг, которая вычисляет средний балл и выводит ФИО студента, у которого он максимальный....
C++ Перевод stdin c файла на клавиатуру #include <stdio.h> int x,y; int main(){ freopen("1.txt","r",stdin); freopen("2.txt","w",stdout); scanf("%d",&x); // scanf("%d",&y); printf("%d",x+y); подробнее

Показать сообщение отдельно
Atila
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 12

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

02.05.2013, 20:14. Просмотров 316. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru