[英]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.