Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Яз Си. Использование объединений
 
 автор: VlTag   (27.05.2013 в 13:55)   письмо автору
 
 

Прошу опытных программистов объяснить как с помощью объединения на два поля вывести целое число через символьный формат.

  Ответить  
 
 автор: cheops   (27.05.2013 в 21:20)   письмо автору
 
   для: VlTag   (27.05.2013 в 13:55)
 

Вывести куда?

  Ответить  
 
 автор: VlTag   (27.05.2013 в 22:05)   письмо автору
 
   для: cheops   (27.05.2013 в 21:20)
 

Куда вывести.
Нашёл в Internet пример кода. Надо его довести до рабочего состояния.
/*Вывод целого числа с помощью объединения*/
#include <stdio.h>
#include <stdlib.h>
union pw {
int i;
char ch[2];
};

int write_int(int num, FILE *fp);

int main()
{
FILE *fp;
fp = fopen("test.tmp", "w+");
if(fp==NULL) {
printf("Cannot open file. \n");
fclose(fp);
return 0;
}

/* Вывод целого числа с помощью объединения */

int write_int (int num, FILE *fp) {
union pw wrd;
wrd.i = num;
putс(wrd.ch [0], fp); /* Вывод первой половины */
return putc(wrd.ch [1], fp); /* Вывод второй половины */
}

  Ответить  
 
 автор: VlTag   (28.05.2013 в 01:08)   письмо автору
 
   для: VlTag   (27.05.2013 в 22:05)
 

Обсуждаемый код размещён:
http://www.c-cpp.ru/books/obedineniya
Кое-что получилось, но работает не так как надо.
Что в коде изменить?
#include <stdio.h>
#include <conio.h>
int write_int (int num, FILE *fp) {
union pw {
int i;
char ch[2];
};
union pw wrd;
wrd.i = num;
putc(wrd.ch [0], fp);
return putc(wrd.ch [1], fp);
}
int main()
{
int num =0xabcd;
FILE *fp;
fp = fopen("test.txt", "w+");
if(fp==NULL) {
printf("Cannot open file. \n");
fclose(fp);
return 0;
}
printf("Program for output integer");
write_int(num, fp);
fclose(fp);
printf(" \n\n\n");
printf("For stop program press key 'q': \n\n");
getch();
return 0;
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования