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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
DarthNamik
2 / 2 / 0
Регистрация: 01.03.2010
Сообщений: 18
#1

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

03.07.2011, 19:35. Просмотров 1133. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2011, 19:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В конец целочисленного двоичного файла дописать нечетные значения, содержащиеся в другом целочисленном текстовом файле (C++):

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

В начало двоичного файла целого типа дописать нечетные элементы этого файла. - C++
Вот прога для записи четных файлов...в конец Мне нужно в начало....нечетные...помогите разобраться как сделать!!!:drink: #include...

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

В целочисленном массиве из 10 элементов найти максимальный элемент и заменить все элементы, значения которых нечетные на полученное значение максималь - C++
В целочисленном массиве из 10 элементов найти максимальный элемент и заменить все элементы, значения которых нечетные на полученное...

Написать программу копирования файла. В конец каждой строки файла дописать количество пробелов в строке - C++
Чтение происходит блоками. Обработать ошибки Я пока просто смогла скопировать один файл в другой, а как добавить количество пробелов...

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

6
Питекантроп
246 / 140 / 6
Регистрация: 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
DarthNamik
2 / 2 / 0
Регистрация: 01.03.2010
Сообщений: 18
03.07.2011, 23:30  [ТС] #3
Пробовал и так, но не выводится нужный результат ввожу:
11
12
А в массиве d[n] совсем другие значения!(0,49,50)...
Проблема как раз только в этом, не могу от А в d[n] перевести!!!
0
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
04.07.2011, 02:22 #4
Цитата Сообщение от DarthNamik Посмотреть сообщение
fgets(a,n,INPUT);
а здесь же вы считываете n символов, а нужно же по одному, так?
1
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
04.07.2011, 04:46 #5
C++
1
d[n]=(int)a[0] - '0';  //приводи к числу из - ASCII
1
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.07.2011, 10:51 #6
Цитата Сообщение от DarthNamik
Код рабочий, но в файл записывается совсем не то что нужно!
неправильно передаются пути к файлам
1
DarthNamik
2 / 2 / 0
Регистрация: 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
04.07.2011, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2011, 23:06
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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