Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/181: Рейтинг темы: голосов - 181, средняя оценка - 4.66
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
1

[C++] Работа с файлами

17.06.2010, 21:09. Показов 33246. Ответов 74
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача: Есть файлы, которые надо обработать:
1.просканировать директории на наличие файлов расширения *.TXT
2.сохранять список путей к файлам в booklist.txt (для дальнейшей работы)
3.вывести booklist.txt на экран

Добавлено через 41 минуту
пытался найти похожие или хоть какие-то программы работы с файлами нашел вот эту

работает с файлами через аргумент и выводит дважды содержание файла:
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
// Заголовочные файлы для ввода-вывода
#include <iostream>
#include <fstream>
 
void printFileTwice (const char* filename)
{
    // Открытие файла
    std::ifstream file(filename);
 
    // Первый вывод содержимого
    std::cout << file.rdbuf();
 
    // Возврат к началу файла
    file.seekg(0);
 
    // Второй вывод содержимого
    std::cout << file.rdbuf();
}
 
int main (int argc, char* argv[])
{
    // Двукратный вывод всех файлов, переданных в командной строке
    for (int i=1; i<argc; ++i) {
        printFileTwice(argv[i]);
    }
}
Добавлено через 16 минут
------------------------------------

Посоветуйте что можно сделать, я в С++ только начал
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2010, 21:09
Ответы с готовыми решениями:

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

работа с файлами
Написать программу, которая выводит на экран содержимое текстового файла

Работа с файлами
К сожалению, не имею возможности обучаться методом проб и ошибок, потому оперирую теорией. FILE *...

Работа с файлами
Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа...

74
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
18.06.2010, 12:26 21
Author24 — интернет-сервис помощи студентам
Для добавления записей в файл используй режим "a". Для сброса содержимого на диск во время работы программы и используй функцию fflush
C
1
fflush(out);
1
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
18.06.2010, 12:43 22
Egeni, если ты про мой код, то при компиляции в DEV C++ 4.9.9.2 (очень рекомендую) выходит экзешник 19 кило. И всё.

Добавлено через 9 минут
...И да, всякий раз, дописываая нечто в файл, ты именно добавляешь, то есть "w" не канает (см. сообщение выше)

Вообще поразбирайся с режимами открытия и прочее. Не забудь использовать fclose ().

...А вообще неправильно это всё.
Объясняю.
Не след нам вякий раз открывать файл на добавление имени директории. Это неграмотно, хотя и сработает.
НАдо так: Создаёшь строку НУЖНОЙ длины, туда все имена директорий перегоняешь, потом ОДИН РАЗ открываешь файл на запись и туда перегоняешь эту строку с именами папок. ВСё.

Хотя я тут подумал... А какой длины тебе нужна будет стррока? Заранее ведь неизвестно. Может, ты и прав, что всякий раз перегоняешь имя папки сразу в файл. В общем, лень не будет, поразмысли.
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
18.06.2010, 12:54  [ТС] 23
а если файлов много, то мне кажется что данный алгоритм может загнуться при переполнении буфера или затормозиться очень сильно если не повиснуть вообще..

невыходит вывести путь к файлу программа находится в директории
я пишу
C++
1
2
3
4
      printf("%s\n",pFILEDATA.cFileName);
      rez++;
                FILE *out = fopen( "booklist.txt", "a" );
          fprintf( out, "sPath %s\n", pFILEDATA.cFileName);
и получаю в буклисте (после закрытия программы...)
sPath 2.txt
sPath 3.txt
sPath 4.txt

как привести к виду:
folder\2.txt
folder\3.txt
folder\4.txt
если файлы находятся в папке? а то оно просто сканируемые файлы скидывает


вот сама программа
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
#include <windows.h>
#include <stdio.h>
 
long int rez= 0;
 
void GetFileList(LPTSTR sPath, LPTSTR sExt, LPTSTR sEXT);
 
int main(){
 
//Поскольку sPath и sExt и sEXT одинаковы во всех вызовах GetFileList, их можно было бы сделать
//глобальными, но я так оставил. 
        char sPath[MAX_PATH]= "Folder";
 
//Обратить  внимание на размер массива!
        char sExt[10]= "txt";
        char sEXT[10]= "TXT";
        GetFileList(sPath, sExt, sEXT);
//Портит всё дело: Если перенаправлять в файл с консоли, то полуачается, что в консол ведут 
//запись два разных потока- тот,который нужент и этот,который записывает "Для продлжения нажмите любую
//клавишу" и эта надпись вклинивается в серёдку и портит всё дело
      printf("rez= %d\n", rez);
  system ("PAUSE");
}
 
void GetFileList(LPTSTR sPath, LPTSTR sExt, LPTSTR sEXT) {
 
 WIN32_FIND_DATA pFILEDATA;
 
 HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!Необходимо именно здесь прописывать длину пути!!!!!!!!!!!!!!!!!!!!!!!
 sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
//Если пропишем после if (как предлагает Юра), то тогда, если вдруг натыкаемся на системную директорию
// или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выплнняется по условию
//(hFile!=INVALID_HANDLE_VALUE) не выолнится и в частности, не будет поставлен конец строки!
//А это значит, что по выходу из  рекурсивной функции GetFileList в том месте, где мы восстанавливаем
//Длину, она будет восстановлена неправильно
 if (hFile!=INVALID_HANDLE_VALUE)    {
  char * chBuf;
  //sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
  do {
   //Пропускаем . и ..
   if (strlen(pFILEDATA.cFileName) == 1 &&  strchr(pFILEDATA.cFileName,'.') !=NULL)
    if (FindNextFile(hFile,&pFILEDATA) == 0)
      break;
   if (strlen(pFILEDATA.cFileName) == 2 && strstr(pFILEDATA.cFileName,"..") !=NULL)
    if(FindNextFile(hFile,&pFILEDATA) == 0)
      break;
     //Если нашли директорию, запускаем поиск в ней рекурсивный поиск
   if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
     GetFileList(strcat(sPath,pFILEDATA.cFileName), sExt, sEXT);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!оБЯЗАТЕЛЬН востанавливать дллину пути................................     
     sPath[strlen(sPath) - strlen(pFILEDATA.cFileName)- 1] = '\0';
   }
   else {
    //Проверяем на соотвествие sExt расширения pFILEDATA.cFileName
    if((chBuf = strrchr(pFILEDATA.cFileName,'.'))) {
     if(strstr(chBuf + 1,sExt)|| strstr(chBuf + 1,sEXT)) {
      //Если не будем использовать CharToOem() то на экране русский шрифт каракулями выйдет
      CharToOem(sPath,sPath);
      printf("%s",sPath);
      OemToChar(sPath,sPath);
      CharToOem(pFILEDATA.cFileName,pFILEDATA.cFileName);
      printf("%s\n",pFILEDATA.cFileName);
      rez++;
                FILE *out = fopen( "booklist.txt", "a" );
          fprintf( out, "sPath %s\n", pFILEDATA.cFileName);
     }
    }
   }
  }
  while (FindNextFile(hFile,&pFILEDATA));
 }
}
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
18.06.2010, 13:04 24
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Egeni Посмотреть сообщение
а если файлов много, то мне кажется что данный алгоритм может загнуться при переполнении буфера или затормозиться очень сильно если не повиснуть вообще..
Переодически очищай буфер fflush'ем. На счет тормозов, если ты будешь сканировать весь диск, то естестввенно это займет некоторое время.

Цитата Сообщение от Egeni Посмотреть сообщение
как привести к виду:
folder\2.txt
folder\3.txt
folder\4.txt
если файлы находятся в папке? а то оно просто сканируемые файлы скидывает
Хранить в отдельной строке имя текущей директории. Далее
C
1
fprintf( out, "%s\\%s\n", cur_dir, pFILEDATA.cFileName);
1
Заблокирован
18.06.2010, 13:56 25
C++
1
2
3
4
5
#include <stdlib.h>
int main(void){
    system("dir /s \"D:\\*.txt\" > \"full_ccal.txt\"");
    return 0;
}
в файле full_ccal.txt будут имена файлов .txt с диска D:\ примерно такого типа:
Содержимое папки D:\
18.06.2010 17:42 0 booklist.txt
18.06.2010 17:52 0 full_ccal.txt
18.06.2010 17:16 0 Текстовый документ (2).txt
18.06.2010 17:16 0 Текстовый документ.txt
4 файлов 0 байт
Содержимое папки D:\music\старое\Аида Ведищева-128 kbps\Аида Ведищева CD1
17.10.2009 19:41 506 Треклист.txt
1 файлов 506 байт
Содержимое папки D:\music\старое\Аида Ведищева-128 kbps\Аида Ведищева CD2
18.10.2009 00:34 384 Треклист.txt
1 файлов 384 байт
Дальше наверное надо распарсить файл. Чтобы не выводить лишнего - почитайте описание команды dir. И потом вывести файл на экран для этого можно использовать system("notepad file.txt");
Чтобы искать файлы не на диске D а в других каталогах - надо формировать строку для system() - т.е. вместо \"D:\\*.txt\" заводить что-то другое, надеюсь понятно как эта строка формироваться должна?
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
18.06.2010, 14:00  [ТС] 26
kazak, не выходит присвоение cur_dir немогу "декларировать переменную"

rrrFer, сейчас посмотрим
C++
1
2
3
4
5
#include<stdlib.h>
int main(void){
system("dir /s \"D:\\*.txt\" > \"full_ccal.txt\"");
return 0;
}
0
Заблокирован
18.06.2010, 14:01 27
а почему если вставляю код не из блокнота, а из visual studio то вставляется что-то типа:
C++
1
2
3
4
5
6
7
[SIZE=1][COLOR=#ff00ff][SIZE=1][COLOR=#ff00ff]
#include[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ff00][SIZE=1][COLOR=#00ff00]<stdlib.h>
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ffff][SIZE=1][COLOR=#00ffff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0] main([/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ffff][SIZE=1][COLOR=#00ffff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0]){
system([/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ff00][SIZE=1][COLOR=#00ff00]"dir /s \"D:\\*.txt\" > \"full_ccal.txt\""[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0]);
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ffff][SIZE=1][COLOR=#00ffff]return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#00ff00][SIZE=1][COLOR=#00ff00]0[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#c0c0c0][SIZE=1][COLOR=#c0c0c0];
}
[/COLOR][/SIZE][/COLOR][/SIZE]
наверно потому что я в настройках форума выбрал не стандартный а какой-то другой редактор
0
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
18.06.2010, 14:08  [ТС] 28
на счет использования "системового дира" в файл выходит очень много чепухи, которую опять потом нужно обрабатывать, хотя и вариант простой;

хорошо тогда как парсить?
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
18.06.2010, 14:18 29
Цитата Сообщение от Egeni Посмотреть сообщение
kazak, не выходит присвоение cur_dir немогу "декларировать переменную"
Весь твой листинг не видел, у тебя же sPath должен содержать путь к файлу.
fprintf( out, "%s\\%s\n", sPath, pFILEDATA.cFileName);
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
18.06.2010, 14:36  [ТС] 30
kazak, спасибо

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
#include <windows.h>
#include <stdio.h>
 
long int rez= 0;
 
void GetFileList(LPTSTR sPath, LPTSTR sExt, LPTSTR sEXT);
 
int main(){
 
//Поскольку sPath и sExt и sEXT одинаковы во всех вызовах GetFileList, их можно было бы сделать
//глобальными, но я так оставил. 
        char sPath[MAX_PATH]= "C:";
 
//Обратить  внимание на размер массива!
        char sExt[10]= "txt";
        char sEXT[10]= "TXT";
        GetFileList(sPath, sExt, sEXT);
//Портит всё дело: Если перенаправлять в файл с консоли, то полуачается, что в консол ведут 
//запись два разных потока- тот,который нужент и этот,который записывает "Для продлжения нажмите любую
//клавишу" и эта надпись вклинивается в серёдку и портит всё дело
      printf("rez= %d\n", rez);
  system ("PAUSE");
}
 
void GetFileList(LPTSTR sPath, LPTSTR sExt, LPTSTR sEXT) {
 
 WIN32_FIND_DATA pFILEDATA;
 
 HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!Необходимо именно здесь прописывать длину пути!!!!!!!!!!!!!!!!!!!!!!!
 sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
//Если пропишем после if (как предлагает Юра), то тогда, если вдруг натыкаемся на системную директорию
// или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выплнняется по условию
//(hFile!=INVALID_HANDLE_VALUE) не выолнится и в частности, не будет поставлен конец строки!
//А это значит, что по выходу из  рекурсивной функции GetFileList в том месте, где мы восстанавливаем
//Длину, она будет восстановлена неправильно
 if (hFile!=INVALID_HANDLE_VALUE)    {
  char * chBuf;
  //sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
  do {
   //Пропускаем . и ..
   if (strlen(pFILEDATA.cFileName) == 1 &&  strchr(pFILEDATA.cFileName,'.') !=NULL)
    if (FindNextFile(hFile,&pFILEDATA) == 0)
      break;
   if (strlen(pFILEDATA.cFileName) == 2 && strstr(pFILEDATA.cFileName,"..") !=NULL)
    if(FindNextFile(hFile,&pFILEDATA) == 0)
      break;
     //Если нашли директорию, запускаем поиск в ней рекурсивный поиск
   if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
     GetFileList(strcat(sPath,pFILEDATA.cFileName), sExt, sEXT);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!оБЯЗАТЕЛЬН востанавливать дллину пути................................     
     sPath[strlen(sPath) - strlen(pFILEDATA.cFileName)- 1] = '\0';
   }
   else {
    //Проверяем на соотвествие sExt расширения pFILEDATA.cFileName
    if((chBuf = strrchr(pFILEDATA.cFileName,'.'))) {
     if(strstr(chBuf + 1,sExt)|| strstr(chBuf + 1,sEXT)) {
      //Если не будем использовать CharToOem() то на экране русский шрифт каракулями выйдет
      CharToOem(sPath,sPath);
      printf("%s",sPath);
      OemToChar(sPath,sPath);
      CharToOem(pFILEDATA.cFileName,pFILEDATA.cFileName);
      printf("%s\n",pFILEDATA.cFileName);
      rez++;
                FILE *out = fopen( "booklist.txt", "a" );
                fprintf( out, "%s\%s\n", sPath, pFILEDATA.cFileName);     }
    }
   }
  }
  while (FindNextFile(hFile,&pFILEDATA));
 }
}
Вот общими усилиями собрали, работает, но выкидывает ошибку видимо при переполнении, как вы говорили fflush использовать?

Добавлено через 12 минут
Инструкция по адресу "0x7c901010" обратилась к памяти по адресу "0x00000034". Память не может быть "read"

7C901010 cmp dword ptr [edx+14h],0

Что делать?
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
18.06.2010, 14:39 31
Цитата Сообщение от Egeni Посмотреть сообщение
Что делать?
Для начала определить - где?.
1
Заблокирован
18.06.2010, 14:45 32
Что делать?
отлаживать по шагам
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
18.06.2010, 16:32  [ТС] 33
Я не сталкивался до этого с отлаживаниями программ, видимо это время наступило...

Значит все происходит как...
я запускаю программу:
она ищет файлы ищет, ищет в консоли мелькает все...
потом создается файл booklist.txt - 0 КБ
и выскакивает ошибка
Код
Инструкция по адресу "0x7c901010" обратилась к памяти по адресу "0x00000034". Память не может быть "read"
Нажимаю ОК - Закрывается программа обновляю папку Файл буклист становится равным 21КБ
Нажимаю Отмена вызывается отладчик и тыкает меня в строку с адресом

Код
7C901010 cmp dword ptr [edx+14h],0
Вложения
Тип файла: rar find_txt.rar (1.5 Кб, 24 просмотров)
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
18.06.2010, 19:41 34
Egeni, а после записи файл кто закрывать будет?
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
19.06.2010, 00:45  [ТС] 35
Согласен... я не закрывал файлов а оно видимо их понаоткрывало кучу

Добавлено через 3 часа 5 минут
А как удалить из файла по несколько строк начинающихся с символов /* и заканчивающихся первым */ то есть удалить коментарии?
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
19.06.2010, 07:48 36
Ну этот вопрос можно рекомендовать в качестве задачки тык скыть.

И сразу же: если надумаешь решать, удаляй также комменатрии вида //
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
19.06.2010, 18:03  [ТС] 37
Для использования парсинга в С++ применяются библиотеки boost++ и Qt но они утяжеляют код, как можно обойтись проще без этих библиотек:? самостоятельно:?

Я видел создавались похожие темы про парсинг HTML тегов, но без результатно, ответов в них нет, неужели никто не задумывался?
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
19.06.2010, 20:23 38
Удаление комментариев в файле
Экзамен по С
Вот тут посмотри, может что полезное найдешь.
1
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.06.2010, 01:34  [ТС] 39
http://www.pcre.org
зашел, скачал ftp://ftp.csx.cam.ac.uk/pub/so... ming/pcre/ и сразу возник такой вопрос зачем все так усложнять, я посидел и ужаснулся, что мне с этим всем делать и как это добро можно использовать?

в этой библиотеке не нашел сам файл pcre.h который надо использовать. как установить или переписать библиотеку под себя??

Добавлено через 42 минуты
/------------------------------------------------/
вот нашел упрощенную функцию замены символа на си

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
char *char_replace(char const *str,char before,char after){
size_t len=strlen(str)+1;
char *ret=malloc(len), *ptr=ret;
memcpy(ret,str,len);
while((ptr=strchr(ptr,before))!=0)
*ptr++=after;
return ret;}
 
 
int main(){
char const *str="Hello world!";
char *neww=char_replace(str,'l','L');
printf("%s\n",neww);
free(neww);
return 0;}
Код
char *ret=malloc(len), *ptr=ret;
но вызывает ошибку
Cannot convert 'void *' to 'char *'

Добавлено через 53 минуты
--------------------------------------
вот еще задача функция замены всех вхождений подстроки в строке. функция имеет три аргумента: искомая строка, заменяемая стока и текст с котором необходимо выполнить данные действие
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
char* StrReplace (char* Search, char* Replace, char* Resource)
{
int SearchLen = strlen (Search);
int ReplaceLen = strlen (Search);
 
char* Pointer = strstr (Resource, Search);
 
while (Pointer != NULL)
{
int PointerLen = strlen (Pointer);
int ResourceLen = strlen (Resource);
 
char* NewText = (char*)calloc((ResourceLen - SearchLen + ResourceLen), sizeof(char));
 
strncpy (NewText, Resource, ResourceLen - PointerLen);
strcat (NewText, Replace);
strcat (NewText, Pointer + SearchLen);
 
Resource = (char*)realloc(Resource, (ResourceLen - SearchLen + ReplaceLen)*sizeof(char));
 
for (int i = 0; i < (ResourceLen - SearchLen + ReplaceLen); i++)
{
Resource[i] = NewText[i];
}
 
free (NewText);
 
Pointer = strstr (Resource, Search);
}
 
return Resource;
}
ошибка undefinded reference 'WinMain@16'
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
21.06.2010, 09:57 40
Я уже забыл о чём шла речь вообще, поэтому дам точечные советы.
По последней ошибке, скорее всего компилятор ищет функцию а-ля main и не может её найти

Надо прописать где-нибудь в коде

По невозможности ковертировать один тип в другой.
Удивляться не приходится ведь malloc возвращает переменную типа void*, и это значение присваивается переменной типа char*

Несоответсвие
Ну, это часто я с таким сталкивался. Так единого рецепта решения проблемы не выработал. Эксперементируй с преобразованием типов. Можешь, ret объявить как void*, посмотри, что получится...
1
21.06.2010, 09:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2010, 09:57
Помогаю со студенческими работами здесь

Работа с файлами
помогите решить плиз!!!!!! зарание всем огромное спс!!! Задача 1. Дан файл целых чисел....

Работа с файлами
Задача из сборника Златопольского: 14.28. Имеется типизированный файл, элементами которого...

работа с файлами
1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru