一剑飘零 发表于 2022-9-10 10:21

C语言显示闪屏问题

本帖最后由 一剑飘零 于 2022-9-10 11:02 编辑

输出时用了cls清屏命令。可是会一直闪屏。有好的解决方法吗?或者变换一下思路。求大佬不吝赐教。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<Windows.h>


int main(void) {
    time_t start,endl;
    start = time(NULL);
while (1) {
      endl = time(NULL);
      printf("程序总运行了%d秒", endl - start);    //想让这个显示时间的一直显示,不闪屏
      system("cls");
}
      

return 0;

}

sgbyg 发表于 2022-9-10 10:31

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<Windows.h>


int main(void) {
      time_t start,endl;
    start = time(NULL);
        int temp = 0;
while (1) {
      
      endl = time(NULL);
      
      if(endl - start != temp){
                        system("cls");
                        printf("程序总运行了%d秒", endl - start);
                        temp = endl - start;
                }
}
         

return 0;

}

一剑飘零 发表于 2022-9-10 10:38

sgbyg 发表于 2022-9-10 10:31
#include
#include
#include


{:1_893:}{:1_893:}感谢感谢。确实是好了,但是还是不定时的会闪。有没有一直不闪的?
我看加了sleep(1000).开始不闪。后面也会闪。你这个方法也是开始不闪。后面过几秒会闪几下。总体是可以了。

excess1989 发表于 2022-9-10 10:46

加了延时还闪?好吧!

一剑飘零 发表于 2022-9-10 10:49

excess1989 发表于 2022-9-10 10:46
加了延时还闪?好吧!

刚开始不闪。到9秒后就会闪。肉眼可见的有一些闪。不是那种一直闪。是不定时的闪一次,或者两三次。小瑕疵。不影响。想求一个更彻底的从头至尾一点都不闪的。

一剑飘零 发表于 2022-9-10 11:03

sgbyg 发表于 2022-9-10 10:31
#include
#include
#include


这是什么原理呢?加了判断就不闪了。是因为判断需要时间?

sgbyg 发表于 2022-9-10 11:28

一剑飘零 发表于 2022-9-10 11:03
这是什么原理呢?加了判断就不闪了。是因为判断需要时间?

加了判断 条件不成立就不会执行 就不会闪

白云点缀的蓝 发表于 2022-9-10 11:32

断电重启吧,{:17_1065:}{:17_1065:}

answdl 发表于 2022-9-10 11:33

可以只样解决闪屏
//隐藏光标
void HideCursor()
{
        CONSOLE_CURSOR_INFO cursor_info = { 1,0 };
        SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
        return;
}

void gotoxy(int x, int y)
{
        HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
        COORD pos;
        pos.X = x;
        pos.Y = y;
        SetConsoleCursorPosition(handle, pos);
        return;
}

加上这两个
#include <Windows.h>

HideCursor();
gotoxy(0, 0);

sgbyg 发表于 2022-9-10 11:42

answdl 发表于 2022-9-10 11:33
可以只样解决闪屏
//隐藏光标
void HideCursor()


确实可行 {:1_921:}
页: [1] 2 3 4
查看完整版本: C语言显示闪屏问题