#Linux中的GCC规划#いくつかの便利な小さな関数Cコード

1.キーボードの上下左右を入力して識別します

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//分配内存的大小
#define     SIZE    10
//定义按键们的宏
#define     ESC     "\033"
#define     UP      "\033[A"
#define     DOWN    "\033[B"
#define     LEFT    "\033[D"
#define     RIGHT   "\033[C"

int main()
{
    char *get = (char*)malloc(SIZE);

    for ( ; ; ) 
    {   
        fgets(get, SIZE, stdin);
        /*    用fgets()函数从stdin中读取字符串时,会自动在字符串末尾追加"\n",这里将末尾字符改为"\0"    */
        get[strlen(get) - 1] = '\0';

        if (!strcmp(get, ESC))
            printf("This is \"ESC\" button!\n");
        if (!strcmp(get, UP))
            printf("This is \"UP\" button!\n");
        if (!strcmp(get, DOWN))
            printf("This is \"DOWN\" button!\n");
        if (!strcmp(get, LEFT))
            printf("This is \"LEFT\" button!\n");
        if (!strcmp(get, RIGHT))
            printf("This is \"RIGHT\" button!\n");
    }   

    return 0;
}

操作結果:矢印キーを押すたびに、もう一度Enterキーを押す必要があります(キャッシュの更新に使用)。

kshine@kshine-virtual-machine:~/桌面/GCC$ gcc udlr1.c  -o main -Wall
kshine@kshine-virtual-machine:~/桌面/GCC$ ./main
^[[A
This is "UP" button!
^[[D
This is "LEFT" button!
^[[B
This is "DOWN" button!
^[[C
This is "RIGHT" button!

2.上記のテストコードでは、次のコードに示すように、system( "stty -icanon");を導入できます。

#include <stdio.h>
#include <stdlib.h>
int main()
{
        char ch;
        system("stty -icanon");//关闭缓冲区,输入字符无需回车直接接受
        ch = getchar();
        if(ch == 'a')
                printf("OK\n");
        return 0;
}

3. printf()、ハイライト

#include"stdio.h"
int main()
{
	printf("\033[40;39m  底色40黑色,字色39无无  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[41;38m  底色41深红,字色38无无  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[42;37m  底色42绿色,字色37白色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[43;36m  底色43黄色,字色36深绿  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[44;35m  底色44蓝色,字色35紫色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[45;34m  底色45紫色,字色34蓝色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[46;33m  底色46深绿,字色33黄色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[47;32m  底色47白色,字色32绿色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[48;31m  底色48无无,字色31红色  \033[0m\n");//\033[;m  ……  \033[0m
	printf("\033[49;30m  底色49无无,字色30黑色  \033[0m\n");//\033[;m  ……  \033[0m
	return 0;
}

4. strcmp +読み取り専用仮パラメーターを実現する

5. strcpy +アサーション関数を実装する

6. strlenを実装する

7.ポインター定数と定数ポインター

8.ポインタと自己追加記号の優先順位

9.特別な機能

9.1乱数を生成する

9.2ランダムな検証コードを生成し、検証のために入力する

9.3出力システムの現在時刻

10.関数ポインタと関数ポインタ配列の定義と使用

10.1関数ポインタの定義と使用

10.2関数ポインタ配列の定義と使用

11.整数配列のバブリングソート

 

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/Kshine2017/article/details/85327236