clrscr() Doesn't Work on Windows #5
-
سلام برنامه ساعت نوشتم ک باید در console کار کند با توجه به این که تابع clrscr در c98 به قبل پشتیبانی میشود و من از c17 استفاده میکنم کسی راه حلی برای چاپ ساعت هر بک ثانیه در اول خط console دارد؟ #include <stdio.h>
#include <stdint.h>
#include <unistd.h>
typedef struct{
uint8_t hour;
uint8_t min;
uint8_t sec;
}Clock;
void timing(Clock* clock){
if(++clock->sec >= 60){
clock->sec = 0;
if(++clock->min >= 60){
clock->min = 0;
if(++clock->hour >= 24){
clock->hour = 0;
}
}
}
}
int main(void) {
Clock clock;
while(1){
timing(&clock);
printf("%02d:%02d:%02d", clock.hour, clock.min, clock.sec);
sleep(1);
}
return 0;
} |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
سلام و درود، متوجه سوال نمیشم c 17 سال 2017 منتشر شده و c98 سال 1998 بنابراین باید قاعدتا پشتیبانی بشه. |
Beta Was this translation helpful? Give feedback.
-
ظاهرا تابع clrscr() دیگه روی ویندوز کار نمیکنه چون به کامپایلرهای قدیمی مثل Turbo C و امثال اون مربوطه. برای پاک کردن صفحه نمایش توی ویندوز، بهجاش میتونی از system("cls") استفاده کنی. |
Beta Was this translation helpful? Give feedback.
ظاهرا تابع clrscr() دیگه روی ویندوز کار نمیکنه چون به کامپایلرهای قدیمی مثل Turbo C و امثال اون مربوطه. برای پاک کردن صفحه نمایش توی ویندوز، بهجاش میتونی از system("cls") استفاده کنی.
یک نکته ای که راجب این دستور جدید وجود داره اینه که مستقیما با سیستم عامل در ارتباطه یعنی به نوعی دستور cls رو برای ویندوز میفرسته تا صفحه کنسول پاک بشه و قطعا اگر سیستم عامل تغییر کنه این جواب نمیده
مثلا توی لینوکس باید از دستور system("clear") استفاده کنی.