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

Проект и windows.h - C++

Восстановить пароль Регистрация
 
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
13.05.2012, 11:46     Проект и windows.h #1
Всем ку.
Когда делал программу просто одним файлом .c все было хорошо.
Когда начал разбивать этот файл на проект, то появилась проблема в том, что не находит функции, содержащиеся в windows.h, а именно:
C
1
2
srand(time(NULL))
sleep(1000)
Не находит time и sleep.
Среда - DevC++.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 11:50     Проект и windows.h #2
Мне казалось, что функция time находится в time.h.
Кстати, если проблемма появилась только после разбития на проэкт, то вам придется кинуть сюда начало каждого из ваших файлов исходного кода. Там, где #include
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
13.05.2012, 11:55  [ТС]     Проект и windows.h #3
main.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
43
44
45
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <windows.h>
#include "constant.h"
#include "SortAuto.h"
#include "SortStep.h"
 
main()
{
setlocale(LC_ALL, "Russian"); 
 
do
{
printf("Выберите режим заполнения массива:\n\n\t Нажмите 1 для автоматического заполнения массива\n\t Нажмите 2 для ввода массива с клавиатуры\n\n");
printf("Ввод: ");
scanf("%d",&ModeFill);
if(ModeFill==1 || ModeFill==2)break;
puts("\nВведен неверный параметр, повторите попытку\n");
}
while(1);
do
{
printf("\nВыберите режим отображения сортировки массива:\n\n\t Нажмите 1 для автоматического отображения (интервал = 1сек.)\n\t Нажмите 2 для пошагового отображения (по нажатию любой клавиши)\n\n");
printf("Ввод: ");
scanf("%d",&ModeStep);
if(ModeStep==1 || ModeStep==2)break;
puts("\nВведен неверный параметр, повторите попытку\n");
}
while(1);
 
if(ModeFill==1 && ModeStep==1)
{
    srand(time(NULL)); //каждый раз случайные числа
    printf("\nВведите размер массива: ");
    scanf("%d",&size);
    int mas[size];
    printf("\nМассив:");
    for(i=0;i<size;i++)
    {
        mas[i]=rand()%100; //случайное заполнение до 99
        printf(" %d",mas[i]);
    }
    SortAuto(mas,size); //сортируем массив
}
SortAuto.h
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
void SortAuto(int a[],int n)
{
    
    int countswap=0; //счетчик обменов
    int countcompare=0; //счетчик сравнений
    int i=0,k=0,j=0,l=0;
    for (i=0;i<n;++i)
    {
    int temp=a[i]; //текущая позиция
    printf("\n\nТекущая позиция: %d\n",temp);
    int left=0; //левый край
    int right=i; //правый край
    while (left<right) //пока левый край меньше правого
    {
    int middle=(left+right)/2; //находим середину
    printf("%d ",temp);
    //printf("\nсередина: %d",middle);
    if (temp>=a[middle])//если элемент больше середины
    { 
        left = middle + 1; //левый край правее середины
    }
    else
    right=middle; //иначе правый край равен середине
    printf("сравниваем с %d\n",a[middle]);
    countcompare++;
    }
    for (j=i;j>left;--j)
    {
        k=a[j-1];
        printf("%d обмениваем",a[j]);
        a[j-1]=a[j]; //обмен
        a[j]=k;
        printf(" с %d\n",a[j]);
        countswap++;
    }
    printf("Массив:");
    for (l=0;l<n;++l)
    {
    printf(" %d",a[l]);
    }
    sleep(1000); //интервал
    } 
    printf("\n\nОтсортированный массив:");
    for (l=0;l<n;++l)
    {
        printf(" %d",a[l]);
    }
    printf("\nКоличество сравнений: %d\n",countcompare);
    printf("Количество обменов: %d\n",countswap);
}
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 12:18     Проект и windows.h #4
Подключите в SortAuto.h все хидеры, которые вам там нужны -- time.h, windows.h, etc.
Может получиться, что один и тот же заголовочный файл будет подключен дважды. Впрочем, реально он будет подключен к проэкту только 1 раз. Это достигается условной компиляцией:
C++
1
2
3
4
5
#ifndef SortAuto.h//Если в проэкте еще не определен хидер то...
#define SortAuto.h//...определить
......//Код. Здесь начинаются include и т.д.
......//После самой последней строчки программы
#endif
Добавлено через 51 секунду
P.S.: В стандартных заголовочных файлах это все есть.
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
13.05.2012, 12:27  [ТС]     Проект и windows.h #5
Попробую. Но хочу сказать, что до того как я вынес функцию сортировки в отдельный файл, у меня просто был проект и в нем файл main.c с сортировкой внутри, так вот, было тоже самое.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 12:29     Проект и windows.h #6
Ну, тогда про time.h я ошибся. Или, что вероятнее, функции именно в time.h, а в windows.h подключение time.h
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
13.05.2012, 12:40  [ТС]     Проект и windows.h #7
Разобрался. Я создал проект на си++, а надо как просто си. UFO094, спасибо, что откликнулись.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2012, 12:58     Проект и windows.h
Еще ссылки по теме:

C++ windows 7 + win32. Как правильно сохранить проект?
C++ Проект
C++ GTK / C++ проект в Code::Blocks под Windows

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

Или воспользуйтесь поиском по форуму:
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 12:58     Проект и windows.h #8
Да не за что)
Yandex
Объявления
13.05.2012, 12:58     Проект и windows.h
Ответ Создать тему
Опции темы

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