функцията сън не може да бъде разрешена

Използвам 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