функция сна не может быть решена

Я использую eclipse и создаю простую программу, но получаю сообщение об ошибке, говорящее о том, что функция сна не может быть разрешена.

#include <time.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    printf("ciao");
    sleep(20);
    return 0;
}

Я не знаю, нужны ли мне другие библиотеки или что-то еще. MinGW должен быть установлен правильно, поэтому я понятия не имею


person andrea    schedule 25.10.2011    source источник


Ответы (3)


Если вы используете MinGW, как указано, вам может потребоваться включить windows.h. Я думаю, что реализация сна использует Win API Sleep().

Например:

#include <windows.h>
#include <iostream>

int main() {
    std::cout << "!!!Hello World!!!" << std::endl;
    Sleep(20000);
    std::cout << "Text Will Appear After 2 Sec.." << std::endl;
    return 0;
}
person Mark Wilkins    schedule 25.10.2011

Функция sleep() определяется POSIX, а не стандартом C++.

Если вы работаете в Unix-подобной системе, вам нужно

#include <unistd.h>

Если нет, то функция sleep() может быть даже недоступна.

Да, и смешивание cout << ... и printf(), вероятно, не очень хорошая идея, и вам не нужен #include <conio.h>.

person Keith Thompson    schedule 25.10.2011

При разработке переносимого кода, который должен работать в Unix и Windows, я всегда определял макрос sleep() для Windows, который вызывает Windows Sleep(), который выглядит следующим образом:

#define sleep(a) Sleep(a * 1000)

Это достаточно просто сделать.

person Lou    schedule 25.10.2011