sprintfk
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## 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 988. 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

Précédent | Niveau supérieur | Suivant
sprintf | Sommaire | spsend