簡體   English   中英

在C中使用“”塊內的整數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM