Problema com a função fpos_t e fgetpos [closed]

0

quando tento usar essas funções, ele envia este erro:

main.cpp: In function ‘int main()’:
main.cpp:11:17: error: conversion from ‘int’ to non-scalar type ‘fpos_t {aka _G_fpos_t}’ requested
main.cpp:18:20: error: cannot convert ‘fpos_t {aka _G_fpos_t}’ to ‘FILE* {aka _IO_FILE*}’ for argument ‘1’ to ‘int fgetpos(FILE*, fpos_t*)’

O código é:

#include<stdio.h>

struct registro{
        char nombre[5];
        };

int main()
{
FILE *fp;
registro datos[5];
fpos_t posicion=5;

fp = fopen("nombres.txt","w"); //CREA UN ARCHIVO DE TEXTO

printf("ingrese nombre: ");
gets(datos[1].nombre);

fgetpos(posicion,fp);
fwrite(&datos[1],5,1,fp); //ESCRIBE EL VALOR DE DATOS EN FP, CON UN TAMAÑO DE 5
fflush(stdin);
fclose(fp);
}

Se você encontrar algum erro, por favor ajude.

    
por Rafa Mena 21.10.2013 / 20:08

1 resposta

0

Parece mais um tipo de pergunta stackoverflow mas, de qualquer forma, pelo que posso obter da mensagem de erro, o problema está no posiciion=5 parte do código. Você está atribuindo um inteiro a um tipo não inteiro fpos_t e isso está causando ambos os erros. tente sem =5 e veja se funciona.

    
por arsaKasra 21.10.2013 / 20:51