命令行界面:
- 命令行界面 是用于查看和管理计算机文件的基于文本的用户界面(UI)。
- 命令行界面也称为命令行用户界面,控制台使用界面,字符使用界面。
- 在编程中,用户在程序执行期间(即在运行阶段)进行输入。但是在很多情况下,在程序进入执行之前需要输入。
- 为了概括起见,以汽油泵为例:
- 汽油泵的供应商将数量输入到机器中,然后机器相应地给出那么多的汽油。
- 因此,这意味着机器正在接受该量作为函数的参数,该参数反过来告诉机器必须释放多少公升的汽油。
- 这是命令行参数程序的实际应用程序。机器在进入执行阶段之前(甚至在运行之前)会要求输入参数。
- 在进入程序之前,运行命令行参数程序的重要方面之一是参数是通过命令行给出的。
怎么运行呢?
- 确保在创建程序后仅保存并编译它。
- 编译非常重要(因为只有在编译exe文件后才会更新)。
- 不要运行它,因为它意味着要通过CLI运行。
- 因此,保存后打开命令提示符,然后导航到保存程序的文件夹。
- 完成路径后,输入程序名称,后跟exe 。
关机:
- 在关闭程序中,将创建一个命令行参数程序,该程序将使用时间参数,从而相应地关闭计算机。
- 下面给出几个要点:
- sprintf库函数:它将格式化的数据写入字符串,即,如果在printf上使用了该格式,则它将组成一个具有与要打印的文本相同的文本的字符串,但不是将其打印,而是将内容作为C字符串存储在缓冲区中由str指出。缓冲区的大小应足够大以包含整个结果字符串。它包含三个参数:
- str:指向存储结果字符串的缓冲区的指针。
- 格式: C字符串,其中包含遵循与printf()中的格式相同的规范的格式字符串
- 附加参数:根据格式字符串,函数可能需要一系列附加参数,每个参数都包含一个用于替换格式字符串格式说明符的值。
- sprintf库函数:它将格式化的数据写入字符串,即,如果在printf上使用了该格式,则它将组成一个具有与要打印的文本相同的文本的字符串,但不是将其打印,而是将内容作为C字符串存储在缓冲区中由str指出。缓冲区的大小应足够大以包含整个结果字符串。它包含三个参数:
- 关机过程:每当系统关闭/使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命令一起使用。
shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c “comment”]]
where /s stands for shut down, /r stands for restart and so on.
- The /t defines the time-out period before shutdown.
- By default /t has a value of 30 seconds (if not specified particularly).
- Say if the programmer wants to shut down the computer after 45 seconds then I have to execute the command shutdown /s /t 45.
- That is why use the command: C:\\Windows\\System32\\shutdown /s /t and after which the value entered by the user will be added there in the string.
- So say if through CLI 40 is entered then the final string will look like this:
C:\\Windows\\System32\\shutdown /s /t 40
- 如果在系统运行时需要在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基础课程》。