gpt4 book ai didi

c++ - 从 'FILE* {aka _IO_FILE*}' 到 'int' 的无效转换

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:21 24 4
gpt4 key购买 nike

当试图编译这个小例子时......

#include <iostream>
#include <stdio.h>
#include <unistd.h>

int main(void) {
FILE *foo;
foo = fopen("bar.txt", "rt");
lseek(foo, 5, SEEK_CUR); // This line is getting compiler error
fclose(foo);
return 0;
}

...我收到有关调用 lseek() 的编译器错误。输出是:

main.cpp|8|error:     invalid conversion from ‘FILE* {aka _IO_FILE*}’ to ‘int’ [-fpermissive]|
unistd.h|334|error: initializing argument 1 of ‘__off_t lseek(int, __off_t, int)’ [-fpermissive]|

郑重声明:我也尝试过同时使用 lseek(*foo, 5, SEEK_CUR);lseek(&foo, 5, SEEK_CUR);,但是只会让事情变得更糟。 (我真的没想到这也能解决任何问题。)

引用man-page for lseek(3) :

Synopsis
off_t lseek(int fildes, off_t offset, int whence);

Description
The lseek() function shall set the file offset for the open file description associated with the file descriptor fildes, as follows:

[........]

我将其解释为第一个参数应该是文件描述符,在本例中是foo

问:这里出了什么问题?

最佳答案

如果你想在文件中查找,使用fseek .我从未见过 lseek 以这种方式使用

更多信息:what's the difference between `fseek`, `lseek`, `seekg`, `seekp`?

关于c++ - 从 'FILE* {aka _IO_FILE*}' 到 'int' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com