初級 C 言語: システムの応用と for ループ

目次

1.制度の適用

1. 基本コード

2. デモ例 

システムコマンド

コンソールコマンド

システムステートメント

以下は、システムで使用できるいくつかのステートメントの簡単な紹介です。

ユーザーが接続した Wi-Fi パスワード名を列挙します。

Wi-Fiパスワードを表示

2. for ループ 

1. 基本的な使い方

2. 使用上の注意

  3. ループを削減し、プログラムを最適化する




1.制度の適用

    次に、詳しく説明します。

1. 基本コード

#define _CRT_SECURE_NO_WARNINGS //scanf函数的使用且防止报错
#include <stdio.h>//打印函数 输入函数
#include<windows.h>//关机指令,清屏指令(system的调用)
#include<string.h>//长度函数(strlen),判断两个字符串是否相等函数(strcmp)语法如下


 //关机程序system("shutdown - s - t 60");
int main()
{	
	char pass[20] = { 0 };
	again:
	system("shutdown -s -t 60");
	printf("60秒后关机,请打下:我是zhu。来取消关机:");
	scanf("%s",pass);
	if (strcmp(pass,"我是zhu")==0)   //strcmp语法
	{
		system("shutdown -a"); //system的意思是执行系统指令
	}
	else
	{
		goto again;//goto的意思是直接跳转到某处重新执行
	}
	return 0;
}

2. デモ例 

システムシャットダウンコマンド: shutdown -s -t 60 (Web リンクに転送)

システムはシャットダウン コマンド: shutdown -aをキャンセルします(さまざまな一般的なシステム コマンドについて説明しているブロガーのリンクを参照してください)。

システムコマンド

コンソールコマンド

  • win+R でメニューを開き、コマンドを入力していくつかのプログラムや機能をすばやく実行します

    • mspaint ペイントを開く

    • calc 電卓を開きます

    • メモ帳

  • これらのコマンドは、次のようなシステム コマンドにも適用できます。

  • システムステートメント

  • システムは外部プログラムを実行するために使用される関数です

  • 形式 system("コマンド ステートメント"); 使用するにはコードに #include<stdlib.h> を追加する必要があります

#include<stdlib.h>
//加#include<windows.h>也可以
int main()
{
	system("calc");		//打开计算器
	return 0;
}

以下は、システムで使用できるいくつかのステートメントの簡単な紹介です。

  1. シャットダウン関連のコード
    	shutdown -a  阻止关机
    
    	shutdown -s  关机(不要试)
    
    	shutdown -s -t 3600     3600秒之后关机
    
    	at 21:30 shutdown -s  定时关机(win7 可以用)
    	
    	slidetoshutdown    滑动关机(win10可用)
    

カラー5A

5: 背景色が紫
A: 文字色が薄緑色 

 设置默认的控制台前景和背景颜色。

 COLOR [attr]

   attr        指定控制台输出的颜色属性。

 颜色属性由两个十六进制数字指定 -- 

 第一个:对应于背景,

 第二个:对应于前景。

 每个数字可以为以下任何值:


 0 = 黑色       8 = 灰色
 1 = 蓝色       9 = 淡蓝色
 2 = 绿色       A = 淡绿色
 3 = 浅绿色     B = 淡浅绿色
 4 = 红色       C = 淡红色
 5 = 紫色       D = 淡紫色
 6 = 黄色       E = 淡黄色
 7 = 白色       F = 亮白色


如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时的颜色。这个值来自当前控制台
窗口、/T 命令行开关或 DefaultColor 注册表值。

如果尝试使用相同的
前景和背景颜色来执行
COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
示例: "COLOR fc" 在亮白色上产生淡红色

ユーザーが接続した Wi-Fi パスワード名を列挙します。

netsh wlan show profiles

Wi-Fiパスワードを表示

ユーザー 1603 の Wi-Fi パスワードを表示

netsh wlan show profiles "1603" key=clear

2. for ループ 

 for文はC言語の3つのループ制御文の1つであり、最も実行効率が高い文です。今回はfor文の使い方と使い方のポイントを詳しく解説します。

1. 基本的な使い方

for(<初始化>,<条件表达式>,<控制变量增量>)
 
{
 
循环整体用法
 
}

      C 言語では、for ステートメントは通常、ループの数がわかっているシナリオに適しています。その初期化は通常、ループ制御変数の初期化に使用される代入ステートメントであり、もちろん他の変数も初期化できます。条件式は主にループの終了を制御するために使用される関係式であり、制御変数の増分は主にループ変数の自己増分であり、ステップ サイズは通常 1 (i++ など) であり、事前に決定することもできます。必要に応じて(ループ制御など、変数 i の増分を 2、i=i+2 に設定できます)。
 

#include
 
int main()
 
{
 
int i;
 
for(i=0;i<5;i++)
 
printf("%d\n",i);
 
return 0;
 
}

その操作プロセスは次のとおりです。

(1) 最初に初期化操作を実行します(ループの最初に 1 回だけ実行)
(2) 条件式を計算し、真の場合は手順 3 に進み、そうでない場合は手順 6 に進みます
(3) 実行ループ本体のステートメント;
(4) 制御変数の増分計算;
(5) ステップ 2 を繰り返す; ステップ 4 に進む;
(6) ループを終了;
上記のプロセスでは、最初に初期化操作を実行し、初期値を代入します。ループ制御変数の値を0にして式を判定 式が真の場合、ループ制御変数iを真の場合に出力し、増分計算を行い、その後条件式の計算を行います。プログラム全体のループ本体は3回実行され、それぞれiの値が1として出力されます。 2.3.4

2. 使用上の注意

  1. for ステートメントの括弧内の 3 つの部分は、セミコロン「;」で区切られたすべてのステートメントであり、3 つのステートメントはすべて省略でき、一部またはすべてを省略できます。
  2. ループ本体はできるだけ簡潔に設定し、不要な演算はできるだけループ本体の外側に配置する必要があります。たとえば、1 から 100 までの合計を計算するために、誰かが次のループを作成しました。
int i,b,sum;
 
for(b=0,i=1;i<101;i++)
 
{
 
b+=i;//b=b+i
 
sum=b;
 
}

上記のループでは、sum=b; ステートメントをループごとに 1 回実行する必要がありますが、これはリソースの多大な無駄です。これはループ本体の外側に配置し、1 回だけ割り当てることができます。次の形式に変更できます。

for(b=0,i=1;i<101;i++)
 
{
 
b+=i
 
}
 
sum=b;

もちろん、リソースを節約するために、上記の例では中間変数 tmp も使用せず、ループ本体内で b 変数を sum に直接置き換えることもできます。

     3. ループの数に影響を与え、期待される効果が得られないように、ループ本体内のループ制御変数の変更は避けてください。

     4. 複数のループでは、最も長いループを内側の層に配置し、最も短いループを外側の層に配置するようにします。これにより、CPU がループ層をカットする回数を減らすことができます。

      5. ループのネストレベルを最小限に抑えます。通常は 3 レベルを超えることはお勧めしません。そうしないと、プログラムの可読性が低下し、同時にプログラムの実行効率に影響します。3階以上の場合は、再設計をお勧めします。

  3. ループを削減し、プログラムを最適化する

場合によっては、並列コードを適切に使用すると、for ステートメントのループが最適化され、ループ数が削減され、プログラムの実行効率が向上します。たとえば、メモの項目 2 の例を使用すると、1 から 100 までの整数の合計を計算するには、いくつかの変数を定義し、並列コードを使用して次の形式に最適化できます。:

for(sum=1,sum2=0,sum3=0,sum4=0,sum=0;i=1;i<101;i+4);
 
{
 
sum1+=i;
 
sum2+=i+1;
 
sum3+=i+2;
 
sum4+=i+3;
 
}
 
sum=sum1+sum2+sum3+sum4;

おすすめ

転載: blog.csdn.net/fcccfffg/article/details/132154978