Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 2
Регистрация: 01.03.2010
Сообщений: 18
1

В конец целочисленного двоичного файла дописать нечетные значения, содержащиеся в другом целочисленном текстовом файле

03.07.2011, 19:35. Просмотров 1511. Ответов 6
Метки нет (Все метки)

Дано такое задание:
Дописывание в файл. В конец целочисленного двоичного файла дописать нечетные значения, содержащиеся в другом целочисленном текстовом файле. Итоговый файл должен иметь строго двоичный формат.

Вот что получилось у меня по ходу решения!

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
#define t 1024        
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>
 
main(){
int i;
int n;
char *buffer;
char a[t];
int d[t]={0};
FILE *INPUT= fopen("D:\INPUT.txt","r");
 
if (INPUT == NULL){
 printf("File not found!\n");
 getch();
 exit(0);
}
n=1;
FILE* f = fopen("D:\OUTPUT.dat", "wb"); 
 while(!feof(INPUT)){ 
  fgets(a,n,INPUT);
  d[n]=(int)a;
  printf("elem[%d] = %d\n",n,d[n]);
  if((d[n]%2)!=0){
       fprintf(f,"%d \n",d[n]);
    } 
  n++;
 }
 
fclose(INPUT);
fclose(f);
getch();
}
Код рабочий, но в файл записывается совсем не то что нужно!
Как по мне ошибка в строке d[n]=(int)a;
Подскажите кто знается как переделать!! Буду признателен очень!!

Добавлено через 7 минут
Хоть какие то домыслы???
Я не пойму почему оно так делает

Добавлено через 12 минут
Если не знает никто, то сбросьте литературу НОРМАЛЬНУЮ по Файлам(бинарным и текстовым).
....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2011, 19:35
Ответы с готовыми решениями:

Дописывание в файл. В конец целочисленного двоичного файла дописать нечетные значения
Дописывание в файл. В конец целочисленного двоичного файла дописать нечетные значения, содержащиеся...

Динамические структуры данных: дописать в конец очереди содержащиеся в ней нечетные элементы
Создать очередь и дописать в конец очереди содержащиеся в ней нечетные элементы. Помогите...

В текстовом файле хранится программа. Вычислить и дописать в конец этого файла количество операторов присваивания
В текстовом файле хранится программа, записанная на языке Turbo Pascal. Вычислить и дописать в...

В начало двоичного файла целого типа дописать нечетные элементы этого файла.
Вот прога для записи четных файлов...в конец Мне нужно в начало....нечетные...помогите разобраться...

6
249 / 143 / 21
Регистрация: 14.06.2010
Сообщений: 340
03.07.2011, 22:04 2
Цитата Сообщение от DarthNamik Посмотреть сообщение
d[n]=(int)a
В d[n] здесь записывается указатель на массив а. Чтоб писалось значение с массива d[n]=(int)a[0]. Кроме того, операцию % можно проводить и сhar, поэтому не обязательно преобразовывать в int.

Цитата Сообщение от DarthNamik Посмотреть сообщение
fprintf(f,"%d \n",d[n]);
Это же вы текст пишете. Двоичное пишите через fwrite, например.
1
2 / 2 / 2
Регистрация: 01.03.2010
Сообщений: 18
03.07.2011, 23:30  [ТС] 3
Пробовал и так, но не выводится нужный результат ввожу:
11
12
А в массиве d[n] совсем другие значения!(0,49,50)...
Проблема как раз только в этом, не могу от А в d[n] перевести!!!
0
249 / 143 / 21
Регистрация: 14.06.2010
Сообщений: 340
04.07.2011, 02:22 4
Цитата Сообщение от DarthNamik Посмотреть сообщение
fgets(a,n,INPUT);
а здесь же вы считываете n символов, а нужно же по одному, так?
1
929 / 754 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
04.07.2011, 04:46 5
C++
1
d[n]=(int)a[0] - '0';  //приводи к числу из - ASCII
1
4845 / 3266 / 465
Регистрация: 10.12.2008
Сообщений: 10,569
04.07.2011, 10:51 6
Цитата Сообщение от DarthNamik
Код рабочий, но в файл записывается совсем не то что нужно!
неправильно передаются пути к файлам
1
2 / 2 / 2
Регистрация: 01.03.2010
Сообщений: 18
04.07.2011, 23:06  [ТС] 7
Всем спасибо, разобрался сам c вводом и выводом(с бинарными и текстовыми файлами)!!!
=>
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
#define t 1024        
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>
 
main(){
int i;
int n;
char a[t];
char *buff;
int zap;
int d[t]={0};
FILE *INPUT= fopen("INPUT.txt","r");
 
if (INPUT == NULL){
 printf("File not found!\n");
 getch();
 exit(0);
};
 
FILE *out= fopen("O.bin","w");
if (out == NULL){
 printf("Error open output file !\n");
 getch();
 exit(0);
};
 
 
n=0;
 while(!feof(INPUT)){ 
  fscanf(INPUT, "%d", &zap);
  printf("%d %d\n",n, zap);
  fwrite(&zap,4,1,out);
  n++;
 }
 
fclose(INPUT);
//fclose(f);
//getch();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2011, 23:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить в Х файле сумму отрицательных чисел и дописать ее в конец файла
Имеется файл содержащий действительные числа. Определить в Х файле сумму отрицательных чисел и...

Замена слов в одном текстовом файле словами, записанными в другом текстовом файле
Кто-нибудь пожалуйста приведете пример реализации следующей программы имеются два тектовых файла -...


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

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

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