Pergunta

como faço para ir sobre a substituição de uma linha específica em um arquivo de texto em c ?. Eu tenho valores em múltiplas variáveis ??que precisam ser escritos para o arquivo.

Foi útil?

Solução

Isso só funciona quando a nova linha tem o mesmo tamanho que o antigo:

  • Abra o arquivo no a+ modo
  • fseek() do início do arquivo
  • Antes de ler a próxima linha, o uso ftell() notar o início da linha
  • Leia a linha
  • Se é a linha que pretende, fseek() novamente com o resultado de ftell() e uso fwrite() para substituí-lo.

Se o comprimento das alterações de linha, você deve copiar o arquivo.

Outras dicas

Como os arquivos (do ponto de vista da biblioteca padrão do C) não são orientados para a linha, mas são apenas uma seqüência de caracteres (ou bytes no modo binário), você não pode esperar para editá-los no nível de linha facilmente.

Como Aaron descrito, você pode, naturalmente, substituir os caracteres que compõem a linha se a sua substituição é exatamente o mesmo número de caracteres.

Você também pode (talvez) inserir uma substituição mais curto por preenchimento com espaços em branco no final (antes do terminador de linha). Aquela, naturalmente, um pouco bruto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top