[英]using integers inside “ ” block in C
我正在使用system()函数在Linux中像system("omxplayer /home/path/1.mp3');
一样使用omxplayer,并且我有很多mp3文件,如1.mp3
2.mp3
。我使用rand()函数随机播放mp3文件。
switch(randnum)
{
case 1:
system("omxplayer /home/path/1.mp3");
case 2:
system("omxplayer /home/path/2.mp3");
...
}
我想知道这样做是否可能
system("omxplayer /home/path/randnum.mp3");
这可能吗?
您可以输入一个随机数:
int randomNum = (rand() % UPPER_LIMIT) + 1;
然后使用sprintf()
或snprintf()
创建并复制所需的字符串:
char buffer[100];
sprintf(buffer, "omxplayer /home/path/%d.mp3", randomNum);
要么
char buffer[100];
snprintf(buffer, sizeof buffer, "omxplayer /home/path/%d.mp3", randomNum);
sprintf()
和snprintf()
之间的区别在于snprintf()
与sprintf()
不同,它需要缓冲区的大小作为第二个参数。 这样做是为了防止缓冲区溢出。 因此,由于额外的安全性, snprintf()
比sprintf()
更好 。
最后,使用buffer
调用system()
:
system(buffer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.