Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (Си) Нужна объективная критика https://www.cyberforum.ru/ c/ thread1627555.html
Я тут на си игрушку консольную маленькую написал, может знающие люди укажут над чем мне стоит поработать...первая относительно большая программа (раньше было максимум строчек до 50) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define MAP_LENGTH 35 //x #define MAP_WIDTH 10 //y
C (Си) Нужны идеи для написания программ
Решил учить си путём написания программ от простых к сложным. Так вот, идей чего-бы сделать нету, а практики хочется. Последней написал вот эту консольную игру - #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define MAP_LENGTH 35 //x #define MAP_WIDTH 10 //y #define GROUND '-' #define TREE '!'
C (Си) Макросы для переносимых типов https://www.cyberforum.ru/ c/ thread1621389.html
Всем привет) У меня наверно глупый вопрос но все же: почему при указании SCNd8 происходит ошибка?С SCNd16 все ок Заранее спасибо)
C (Си) Тест на языке Си https://www.cyberforum.ru/ c/ thread1621273.html
Тесты программы. Буду благодарен кто напишет тест на языке Си
Разобрать и прокомментировать большой код C (Си)
Код в архиве
C (Си) Перевод изображения, состоящего из горизонтальных отрезков, в формате bmp в изображение в формате dxf https://www.cyberforum.ru/ c/ thread1619049.html
Задание вот такое. Создайте программу , которая переводит изображение в формате bmp состоящее из горизонтальных отрезков в изображение в формате dxf Добавлено через 15 часов 31 минуту Все. не нежно сделал сам
C (Си) Игра в консоли. Перехват нажатий клавиш на клавиатуре Решил я для практики написать маленькую RPG в консоли. Не получается осуществить перехват нажатия клавиш. Перерыл весь гугл)) Получается только так, к примеру, вводим w, нажатимаем на Enter, после чего перерисовывается массив, и игрок уже на 1 символ выше. Мне же надо без Enter'a как в обычной игре. Писал на Си в Palles C P.s Почему-то мне кажется, что этот IDE плохой т.к. много не... https://www.cyberforum.ru/ c/ thread1616884.html C (Си) Вывести массу тела в килограммах
C (Си) Как создавать и применять DLL? https://www.cyberforum.ru/ c/ thread1612917.html
Решил изучить как создаются dll и как их использовать в коде. Привожу линк на пример, которым я пользовался в более упрощенном варианте: https://***************/question/90107384 PS Не получилось передать линк на пример. Чтобы его найти надо поискать в гугле: "Кто умеет создавать dll библиотеки в Dev C++, вопрос к вам." Ниже, то как я это пытался реализовать. Задачей было определить...
C (Си) Реализация двух процессов с обменом сообщениями через Сокет https://www.cyberforum.ru/ c/ thread1612379.html
Помогите, пожалуйста, с программой. С никогда не изучал, и к сожалению о сокетах не имею достаточных знаний. Очень нужно для зачета, что делать ума не приложу. Вычислить f (x) && g (x), используя 2 вспомогательные процессы: один вычисляет f (x), а другой - g (x). Основная программа выполняет ввод-вывод и операцию &&. Использовать обмен сообщениями через порт (Socket). Реализовать вариант...
C (Си) Движение объекта по прямоугольнику (SDL)
Я нарисовал квадрат вписанный в окружность, помогите с анимацией движения вообще без понятия(Через цикл можно сделать, не подключая других библиотек, если да опишите пожалуйста) #include "SDL.h" int DrawPic1(int x0, int y0, int r, int &x, int &y) { SDL_Init(SDL_INIT_EVERYTHING);
C (Си) Архиватор на С. Размер сжатого файла https://www.cyberforum.ru/ c/ thread1609113.html
По программированию нам задали реализовать архиватор и деархиватор на С. Сам архиватор я написала,но при записи в итоговый файл таблицы встречаемости и закодированной строки размер сжатого файла становится несколько больше исходного. Я думаю,что проблема в том,что частота встречаемости имеет формат float - 4 байта, что занимает достаточно много места. Но как от этого избавиться не знаю. ...
2 / 2 / 3
Регистрация: 07.10.2013
Сообщений: 48
0

Не могу записать буффер в файл через fwrite - C (Си) - Ответ 8566806

30.12.2015, 19:36. Показов 1002. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер.

Пишу одну программку, и никак не получается записать буффер в файл.

Файл создаётся, а там либо 0 байт, либо какое-то случайное число.

Свойства созданного файла в изображении.

Прошу помочь, кто может, так как не могу найти ошибку, а скоро сдавать.

main:

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
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
 
#include "steglib.h"
 
int main(int argc, char *argv[]){
 
     char* message;
 
     char* mkr = "MKR";
 
     char* source_file_name;
 
     char* stego_file_name;
 
     int copy_result = 0;
     
     if ( argc <= 2 ) {
 
        printf("Error: no input or output specified\n");
 
    return -1;
     }
     else
     if ( argc > 3 ) {
 
        printf("Error: unknown arguments present\n");
 
    return -1;
     }
     else
     if ( argc == 3 ){
 
      /* Allocating memory for strings */
      message = (char *)malloc( 4096 );
      if (!message)
      {
        printf( "Error: cannot allocate memory for message\n ");
        return -1;
      }
 
      source_file_name = (char *)malloc( 4096 );
      if (!source_file_name)
      {
        printf( "Error: cannot allocate memory for source_file_name\n ");
        return -1;
      }
 
      stego_file_name = (char *)malloc( 4096 );
      if (!stego_file_name)
      {
        printf( "Error: cannot allocate memory for stego_file_name\n ");
        return -1;
      }
 
      source_file_name = argv[1];
 
      stego_file_name = argv[2];
 
      /* Protection from accidentally overwriting important user data */
      copy_result = cp(stego_file_name, source_file_name);
      
      if(copy_result != 0){
        printf("Cannot make a clean copy of file or pointing to already existing file. Exiting.\n");
        return -1;
      }
 
      printf("Type your phrase: ");
 
      scanf("%s", message);
 
      hide_msg(message, stego_file_name, mkr);
 
     }
 
     return 0;
}
Библиотека:

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/* Including standard libraries */
 
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
 
/* Including our own function headers */
 
#include "steglib.h"
 
/*
 * Function to hide a message inside a BMP image file.
 * Returns: size of buffer / file contents
 */
 
int hide_msg(char* secret_msg, char* filename, char* MARKER){
 
     int i = 0;
     
     int place_required;
 
     void* buffer;
 
     char* secret;
 
     size_t fileLen;
 
     size_t file_length = 0;
 
     secret = (char *)malloc(sizeof(3*sizeof(MARKER)+sizeof(filename)+sizeof(secret_msg)));
 
     /* Concatenating strings in format: MARKER + src_filename + MARKER + secret_msg + MARKER */ 
 
     strcpy(secret, MARKER);
 
     strcat(secret, filename);
 
     strcat(secret, MARKER);
 
     strcat(secret, secret_msg);
 
     strcat(secret, MARKER);
 
     file_length = read_file( filename, buffer );
 
     place_required = 8 * sizeof(secret) - file_length;
 
     if(place_required > 0){
        printf("BMP size is not sufficient! Another %d bytes required!", place_required);
     }
 
//     dump_buffer(buffer, file_length);
     write_file(filename, buffer, file_length);
    
     return 0;
}
 
/*
 * Function to write contents of a buffer in a file
 * and get its size.
 * Returns: result of I/O operations 
 */
 
int write_file( char *name, void *buf, size_t buffer_size){
 
  FILE *pFile;
  int function_result;
  pFile = fopen(name, "wb");
  printf("DEBUG: WFILE"); 
  function_result = fwrite (buf, 1, buffer_size, pFile);
  printf("DEBUG: WFILE1");
  fclose (pFile);
  return function_result;
}
 
/*
 * Function to read contents of a file in a buffer
 * and get its size.
 * Returns: size of buffer / flie contents 
 */
 
size_t read_file( char *name, void *buffer )
{
    FILE *file1;
        size_t fileLen;
  
    //Open file
    file1 = fopen(name, "rb");
    if (!file1)
    {
        fprintf(stderr, "Unable to open file %s", name);
        return;
    }
    
    //Get file length
    fseek(file1, 0, SEEK_END);
    fileLen = ftell(file1);
    fseek(file1, 0, SEEK_SET);
 
    //Allocate memory
    buffer = (void *)malloc(fileLen+1);
    if (!buffer)
    {
        fprintf(stderr, "Error: cannot allocate memory for picture\n");
                fclose(file1);
        return;
    }
 
    //Read file contents into buffer
    fread(buffer, fileLen, 1, file1);
    fclose(file1);
 
    return fileLen;
}
 
/* 
 * Function to view current memory(buffer) dump 
 * in hex. Returns nothing.
 */
 
void dump_buffer(void *buffer, int buffer_size)
{
  int i;
 
  for( i = 0; i < 200; i++)
     printf("%02X ", ((char *)buffer)[i]);
}


Вернуться к обсуждению:
Не могу записать буффер в файл через fwrite C (Си)
Миниатюры
Не могу записать буффер в файл через fwrite  
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2015, 19:36
Готовые ответы и решения:

Запись в файл через fwrite
Хочу записать число типа int в файл. Открываю файл и вижу символы, чисел нет ... #include...

Ошибки при запись в файл через fwrite
FILE*f = fopen(&quot;book.txt&quot;, &quot;wb&quot;); fwrite(&quot;s&quot; , sizeof(char),1, f); int notesize =...

Не могу записать в файл на windows, а на linux могу
Я не понимаю почему на windows не могу записать в файл данные...

Считываю с потока файл пакетами -> сохраняю файл. что использовать на Qt вместо fwrite?
пока программа не компилируется, успела только прописать вот такой код QString...

1
30.12.2015, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2015, 19:36
Помогаю со студенческими работами здесь

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

Создание 2Д графики на Си/С++ через собственный буффер(массив/матрицу)
В общем, нужна информация или простенькие примеры как можно выводить собственный массив пикселей на...

Не могу записать файл
unauthorizedexception. Запускаю студию от имени администратора со всеми правами

Не могу записать в файл
написал программу, числа из одного файла записывать в другой . Вчера работала а седня не работает ....

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru