Responda

Escreva uma única instrução por meio da qual cada um dos itens a seguir possa ser obtido. Suponha que cada uma dessas sentenças se aplique ao mesmo programa.

a) Escreva uma instrução que abra o arquivo “oldmast.dat” para leitura e atribua o ponteiro de arquivo retornado a ofPtr.

b) Escreva uma instrução que abra o arquivo “trans.dat” para leitura e atribua o ponteiro de arquivo retornado a tfPtr.

c) Escreva uma instrução que abra o arquivo “newmast.dat” para gravação (e criação) e atribua o ponteiro de arquivo retornado a nfPtr.

d) Escreva uma instrução que leia um registro do arquivo “oldmast.dat”. O registro consiste no inteiro accountNum, na string name e no valor de ponto flutuante currentBalance.

e) Escreva uma instrução que leia um registro do arquivo “trans.dat”. O registro consiste no inteiro accountNum e no valor de ponto flutuante realAmount.

f) Escreva uma instrução que grave um registro no arquivo “newmast.dat”. O registro consiste no inteiro accountNum, na string name e no valor de ponto flutuante currentBalance.

Passo 1

E aí meus queridos!! Tudo bem com vocês??

Hoje vamos entender algumas funções que nos ajuda a manipular alguns arquivos em nosso programa. Bora lá??

  1. Para abrirmos um arquivo precisamos utilizar fopen e atribuir o endereço desse arquivo para o ponteiro ofPtr.
  2. Então podemos resolver nosso problema assim:

    ofPtr = fopen(“oldmast.dat”, “r”);

    Passo 2

  3. Para resolver a seguinte vamos utilizar o mesmo método da anterior. Precisamos abrir o arquivo e atribuir ao ponteiro tfPtr.
  4. Resolvendo:

    tfPtr = fopen(“trans.dat”, “r”);

    Passo 3

  5. Seguindo a mesma lógica, também podemos resolver a c da mesma maneira:
  6. nfPtr = fopen( “newmast.dat”, “w” );

    Passo 4

  7. Já nessa questão precisamos entender sobre a função fscanf. Essa função lê a entrada formatada de um stream. Assim precisamos definir a instrução da seguinte maneira:
  8. fscanf( ofPtr, “%d%s%f”, &accountNum, name, &currentBalance );

    Passo 5

  9. Essa podemos resolver igual a questão anterior apenas mudando o ponto flutuante e o ponteiro no qual atribuímos antes. Veja:
  10. fscanf( tfPtr, “%d%f”, &accountNum, &dollarAmount );

    Passo 6

    E para finalizar...

  11. Precisamos gravar um registro no arquivo e para isso utilizamos a função fprintf. Essa função imprime uma cadeira de caracteres formatadas em um fluxo. Vaja como podemos fazer:

fprintf( nfPtr, “%d %s %.2f”, accountNum, name, currentBalance );

Ufa... Acabamos por aqui!! Dê Ctrl+n no seu compilador e bora para o próximo exercício!!

Resposta

Ei, a resposta está no passo a passo :)