我正在使用system()func在linux中使用omxplayer,如system("omxplayer /home/path/1.mp3');
,我有很多名为1.mp3
2.mp3
的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");
这可能吗?
答案 0 :(得分:4)
你可以随机编号:
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()
,因为它具有额外的安全性。
最后,使用system()
:
buffer
system(buffer);