📜  C语言中的CLI程序,用于播放媒体和关闭系统

📅  最后修改于: 2021-05-26 01:21:26             🧑  作者: Mango

命令行界面

  • 命令行界面 是用于查看和管理计算机文件的基于文本的用户界面(UI)。
  • 命令行界面也称为命令行用户界面,控制台使用界面,字符使用界面。
  • 在编程中,用户在程序执行期间(即在运行阶段)进行输入。但是在很多情况下,在程序进入执行之前需要输入。
  • 为了概括起见,以汽油泵为例:
    • 汽油泵的供应商将数量输入到机器中,然后机器相应地给出那么多的汽油。
    • 因此,这意味着机器正在接受该量作为函数的参数,该参数反过来告诉机器必须释放多少公升的汽油。
    • 这是命令行参数程序的实际应用程序。机器在进入执行阶段之前(甚至在运行之前)会要求输入参数。
  • 在进入程序之前,运行命令行参数程序的重要方面之一是参数是通过命令行给出的。

怎么运行呢?

  • 确保在创建程序后仅保存并编译它。
  • 编译非常重要(因为只有在编译exe文件后才会更新)。
  • 不要运行它,因为它意味着要通过CLI运行。
  • 因此,保存后打开命令提示符,然后导航到保存程序的文件夹。
  • 完成路径后,输入程序名称,后跟exe

关机

  • 在关闭程序中,将创建一个命令行参数程序,该程序将使用时间参数,从而相应地关闭计算机。
  • 下面给出几个要点:
    • sprintf库函数:它将格式化的数据写入字符串,即,如果在printf上使用了该格式,则它将组成一个具有与要打印的文本相同的文本的字符串,但不是将其打印,而是将内容作为C字符串存储在缓冲区中由str指出。缓冲区的大小应足够大以包含整个结果字符串。它包含三个参数:
      • str:指向存储结果字符串的缓冲区的指针。
      • 格式: C字符串,其中包含遵循与printf()中的格式相同的规范的格式字符串
      • 附加参数:根据格式字符串,函数可能需要一系列附加参数,每个参数都包含一个用于替换格式字符串格式说明符的值。
  • 关机过程:每当系统关闭/使PC休眠时,都会触发关闭的可执行文件。该文件在目录中的路径由以下命令给定: C:\\ Windows \\ System32 \\ shutdown

下面是关闭计算机的程序:

C
// C program to shut down the computer
#include 
#include 
  
// Driver Code
  
int main(int argc, char* argv[])
{
    char buf[32];
    int time;
  
    // Function converting to integer
    val = atoi(argv[1]);
    sprintf(buf, "C:\\Windows\\System32\\shutdown /s /t %d", time);
  
    // System function to run CLI commands
    system(buf);
  
    // Confirming that program is
    // running properly
    printf("Running successfully. "
           "Shutting down in %d sec",
           time);
  
    return 0;
}


C
// C program illustrating myplayer
// program through CLI
#include 
#include 
  
// Driver Code
int main(int argc, char* argv[])
{
    char tbo[100];
  
    // First version of command:
    sprintf(tbo, "G:\\song\\%s.mp3", argv[1]);
  
    printf("The song %s.mp3 is going "
           "to be played in a "
           "second... :",
           argv[1]);
    system(tbo);
  
    return 0;
}


输出:

解释:

  • 在以上程序中, argc和无限长数组argv在main函数中用作命令行参数。
  • argc接受在CLI中传递的参数数量,数组argv将存储这些参数。
  • argv数组的长度取决于argc。
  • 浅黄色字符用于存储命令。与该程序一样,仅传递time参数,因此在argv [1]处将具有该参数,因为默认情况下argv [0]将分配给该程序的文件位置。
  • 借助atoi方法将该字符串转换为数字。

笔记:

  • 目录的路径为“ C:\ Windows等”,但是在我们的程序中,使用“ C:\\ Windows”作为反斜杠,这是因为如果仅使用一个反斜杠,则字符串的另一部分将不会被评估。
  • 因此,在转义序列的帮助下,程序员告诉编译器不要将第二个反斜杠视为行尾。

先前的命令C:\\ Windows \\ System32 \\ shutdown将成为导致关闭的命令。有多种参数可以与shutdown命令一起使用。

  • 如果在系统运行时需要在CLI上执行命令,则可以使用系统函数 因为system()函数用于执行不能在C程序中直接使用的SHELL命令。因此,以这种方式执行代码。

我的播放器

在此程序中,任务是制作一个命令行参数程序,通过该程序插入mp3文件的名称,然后播放歌曲。因此,使用相同的概念。有两种方法可以通过命令行打开mp3文件。它们如下:

  • 直接打开文件:如果用户要打开驻留在歌曲文件夹中的test.mp3 。因此,编写以下命令: “ G:\\ song \\ test.mp3”
  • 通过Windows Media Player打开mp3文件:如果用户使用以下方式,则歌曲将通过默认的Windows Media Player播放。该命令是启动wmplayer G:\\ song \\ test.mp3

以下是通过CLI演示“我的播放器”程序的程序:

C

// C program illustrating myplayer
// program through CLI
#include 
#include 
  
// Driver Code
int main(int argc, char* argv[])
{
    char tbo[100];
  
    // First version of command:
    sprintf(tbo, "G:\\song\\%s.mp3", argv[1]);
  
    printf("The song %s.mp3 is going "
           "to be played in a "
           "second... :",
           argv[1]);
    system(tbo);
  
    return 0;
}

输出:

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。