函数 fpos_t 和 fgetpos 的问题

函数 fpos_t 和 fgetpos 的问题

当我尝试使用这些功能时,它会发送此错误:

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*)’

代码如下:

#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);
}

如果您发现任何错误,请帮忙。

答案1

看起来更像是堆栈溢出这类问题,但无论如何,从错误消息中我得到的信息来看,问题出在posiciion=5代码部分。您正在将一个整数分配给非整数类型fpos_t,这导致了两个错误。试试看=5它是否有效。

相关内容