C语言:读TXT 模拟键盘打字输出
阅读原文时间:2023年07月09日阅读:2

//#include
#include
#include
//#include "string.h"
//#include
//#include "stdlib.h"
//读TXT文件,模拟键盘输出,100个字符后清屏再继续输出 (41 93换行)
/*
WORD在windows.h中定义,等同于unsigned short,使用低4位表示文字(前景)颜色,高4位表示文字背景颜色,所以它的取值为xx。x为一位16进制数,即0~F都可以使用,可以随意组合。

0~F 分别代表的颜色如下:

0 = 黑色 8 = 灰色 1 = 淡蓝 9 = 蓝色
2 = 淡绿 A = 绿色 3 = 湖蓝 B = 淡浅绿
C = 红色 4 = 淡红 5 = 紫色 D = 淡紫
6 = 黄色 E = 淡黄 7 = 白色 F = 亮白
将背景设置为淡绿色,文字设置为红色:0X2C
*/
int main()
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出句柄
FILE *p;
char file[50];
//scanf("%80s", file);
p = fopen("test.txt", "r");
int i = 0,j,m=0;
int aa=0;
char a[100];
system("cls");
while ((a[i] = fgetc(p)) != EOF)
{
//printf("%d %d\n",a[i],i);
if (a[i]>=0)//汉字编码按字节读取都是负数,遇到非负数则强制加'\0',防止后的字符乱码
{
i++;
a[i] = '\0';
}
i++;
if (i%100==0)
{
if (m%3==0)
SetConsoleTextAttribute(hOut,0xC);
else if (m%3==1)
SetConsoleTextAttribute(hOut,0xf);
else
SetConsoleTextAttribute(hOut,0x9);
m++;
//a[i] = '\0';
for(j = 0; j <= i - 1; j++)
{
printf("%c", a[j]);

                        Sleep(10);  
                        }  
                i=0;  
                printf("\\7");  
            system("cls");  
        }

    }  
    //下面的代码是显示最后不足100个对应字符  
     if (fgetc(p) == EOF)  
        {  
            //a\[i\] = '\\0';  
            //printf("%d\\n",i);  
            for(j = 0; j <= i - 1; j++)  
                    {  
                        printf("%c", a\[j\]);

                        Sleep(100);  
                        }  
                //i=0;  
                //printf("\\7");  
        }

//puts(a);  
//printf("\\n\\n");  
SetConsoleTextAttribute(hOut,  FOREGROUND\_RED | FOREGROUND\_GREEN | FOREGROUND\_BLUE);  
system("pause");  
return 0;

}