C语言:读TXT 模拟键盘打字输出
//#include<ctype.h> #include<stdio.h> #include <windows.h> //#include "string.h" //#include <locale.h> //#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; }