write escreve números reais ou strings no console ou em um arquivo formatado

## Seqüência de Chamamento

                write(file_desc, a)
                write(file_desc, a, format)
                write(file_desc, a, k, format)

## Parâmetros

file_desc

  string especificando o nome do arquivo ou valor inteiro especificando a unidade lógica (ver file).

  Quer

  - o string especificando o nome do arquivo. Tentar sobrescrever um arquivo existente produzirá um erro.
  - ou o ID inteiro de um arquivo aberto com `file(…)` (veja file). Usando `%io(2)` irá escrever no console.

  Esta função não consegue abrir um arquivo UTF. Neste caso, por favor use file.

a

  matriz de reais, ou vetor coluna de strings.

format

  string, especifica um formato "Fortran". Este string deve começar com um parêntese esquerdo e terminar com um parêntese direito. Formatos não podem misturar pontos flutuantes, inteiros ou modo de edição de caractere.

  Exemplos de formatos : `"(1x,e10.3,5x,3(f3.0),1x,i4)"`, `"(10x,a20)"`.

  "x": | white space. "5x" = 5 white spaces
  "a": | string. "a20" = 20 first characters of the input string.
  "i": | print as integer
  "f": | real number
  "e": | real number in exponential form.
  "(…)": | group. 3(…) = iterate 3 times the group.

  Consulte um livro de Fortran para obter mais informações.
k

  integer vector

## Descrição

Escreve linha por linha uma matriz de reais, ou um vetor coluna de strings em um arquivo formatado. Cada linha do argumento `a` começa em uma nova linha do arquivo `file_desc`. Dependendo de `format` uma dada linha do argumento `a` pode ser escrita em mais de uma linha do arquivo `file_desc`.

Arquivos de acesso direto : `x=write(file_desc,a,k,format)`. Aqui `k` é o vetor de gravações (uma gravação por linha, i.e. `m=prod(size(k)`)

`write(%io(2),....)` escreve em uma janela do Scilab. Note que neste caso `format` deve produzir uma linha de saída por linha da matriz. Se esta restrição não for respeitada, um erro imprevisível acontece.

## Exemplos

    if getos() == 'Windows' then unix('del asave');
    else unix('rm -f asave'); end
    A = rand(5,3);
    write('asave',A);
    A = read('asave',5,3);

    write(%io(2),A,'('' | '',3(f10.3,'' | ''))')
    write(%io(2),string(1:10))
    write(%io(2),strcat(string(1:10),','))
    write(%io(2),1:10,'(10(i2,3x))')

    if getos() == 'Windows' then unix('del foo');
    else unix('rm -f foo'); end
    write('foo',A)

## Ver Também

- save
- file
- fileinfo
- print
- mfprintf
- mprintf
- fprintfMat

## Histórico

2023.1 write(…) overwrites existing file.