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

"C" работа с файлами - C++

Восстановить пароль Регистрация
 
politex
0 / 0 / 0
Регистрация: 28.03.2011
Сообщений: 6
28.03.2011, 15:07     "C" работа с файлами #1
нужен совет.
либо готов оплатить готовую работу.

суть заключается в следующем.

необходимо скопировать один файл. копирование производится через переменную типа char с одного компьютера на другой. тот с которого производится копирование - написан на C. Программа которая принимает файл - на VB 6.0

трудностей с копированием текстового файла не возникает.
вот пример данной программы.
Код
//посимвольное чтение из файла
#include <stdio.h>
#include <stdlib.h>
int main()
{
   FILE *fp;
   char ch;
 

char f1[8];
printf("Ishodnii fail dla pereda4i \n");
gets(f1);


   if((fp=fopen(f1, "r")) == NULL) 
   {
      printf("Невозможно открыть файл. \n");
      exit(1);
   }

   while((ch=fgetc(fp)) != EOF) {
      printf("%c", ch);
	  
}
   fclose(fp);

return 0;
}
трудности возникают при попытки передачи EXE файлов. Открытие с дескриптором rb тоже не помогают.

посоветовать кто чего может?
-----------
и как в данном примере реализовать подсчет контрольной суммы?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LaГushan
123 / 123 / 14
Регистрация: 12.03.2011
Сообщений: 227
28.03.2011, 15:45     "C" работа с файлами #2
Вам получается надо прочитать .exe файл?
Тогда "rb" оставляйте, а
C
1
char ch;
замените на
C
1
unsigned char ch;
politex
0 / 0 / 0
Регистрация: 28.03.2011
Сообщений: 6
28.03.2011, 17:03  [ТС]     "C" работа с файлами #3
спасибо помогло.
так же для бинарного файла пришлось заменить EOF на sizeof

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

while((ch=fgetc(fp)) != EOF)

пробывал вместо EOF и sizeof, feof ничего не помогло.

какие еще есть способы?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
28.03.2011, 17:37     "C" работа с файлами #4
Цитата Сообщение от politex Посмотреть сообщение
while((ch=fgetc(fp)) != EOF)
C
1
2
while ( fread(&ch, 1, 1, fp) == 1 )
  /*...*/
Но вообще-то за такое надо от компа отлучать. Читать/писать данные в двоичные файлы лучше всё-таки блоками, кратными блоку на диске, а то медленно работать будет...
Yandex
Объявления
28.03.2011, 17:37     "C" работа с файлами
Ответ Создать тему
Опции темы

Текущее время: 01:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru