sprintfk

sprintfk — Sortie formattée à la printf dans une variable chaîne de caractères au taux-k.

Description

sprintfk écrit une sortie formatée à la printf dans une variable chaîne de caractères, comme le fait la fonction C sprintf(). sprintfk s'exécute à la fois pendant l'initialisation et pendant l'exécution.

Syntaxe

Sdst sprintfk Sfmt, xarg1[, xarg2[, ... ]]

Initialisation

Sfmt -- chaîne de formatage comme dans printf() et d'autres fonctions C similaires, sauf que les modificateurs de longueur (l, ll, h, etc.) ne sont pas supportés. Les spécificateurs de conversion suivants sont permis :

  • d, i, o, u, x, X, e, E, f, F, g, G, c, s

xarg1, xarg2, ... -- arguments d'entrée (max. 30) à formater, doivent être de taux-i pour tous les spécificateurs de conversion sauf pour %s, qui nécessite un argument chaîne de caractères. sprintfk accepte aussi les arguments numériques de taux-k, mais ceux-ci doivent quand même être valides à l'initialisation (à moins que sprintfk ne soit évité avec un igoto). Les formats d'entiers comme %d arrondissent les valeurs d'entrée à l'entier le plus proche.

Exécution

Sdst -- variable chaîne de caractères en sortie

Exemples

Voici un exemple de l'opcode sprintfk. Il utilise le fichier sprintfk.csd.

Exemple 913. Exemple de l'opcode sprintfk.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o sprintfk.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

  sr	    =  48000
  ksmps	    =  16
  nchnls    =  2
  0dbfs	    =  1

; Example by Jonathan Murphy 2007

    instr 1

  S1	    =  "1"
  S2	    =  " + 1"
  ktrig	    init      0
  kval	    init      2
if (ktrig == 1) then
  S1	    strcatk   S1, S2
  kval	    =  kval + 1
endif
  String    sprintfk  "%s = %d", S1, kval
	    puts      String, kval
  ktrig	    metro     1

    endin

</CsInstruments>
<CsScore>
i1 0 10
e
</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

1 + 1 = 2
1 + 1 + 1 = 3
1 + 1 + 1 + 1 = 4
1 + 1 + 1 + 1 + 1 = 5
1 + 1 + 1 + 1 + 1 + 1 = 6
1 + 1 + 1 + 1 + 1 + 1 + 1 = 7
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 9
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 10
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 11
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 12

Voir aussi

sprintf, puts, strcatk

Crédits

Auteur : Istvan Varga
2005
Exemple par Jonathan Murphy