加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

fpos_t类型变量的格式说明符?

发布时间:2020-12-16 10:04:01 所属栏目:百科 来源:网络整理
导读:在这里我只想看看变量pos的内容;那么什么类型的格式说明符必须用于此? #include stdio.hvoid main() { FILE *fileptr = fopen("sample.txt","r+"); fpos_t pos; int val = fgetpos(fileptr,pos);} 解决方法 fpos_t在C标准中定义为: fpos_t which is a comp
在这里我只想看看变量pos的内容;那么什么类型的格式说明符必须用于此?

#include <stdio.h>

void main() {
    FILE *fileptr = fopen("sample.txt","r+");
    fpos_t pos;
    int val = fgetpos(fileptr,&pos);
}

解决方法

fpos_t在C标准中定义为:

fpos_t

which is a complete object type other than an array type capable of recording all the information needed to specify uniquely every position within a file.

此类型不一定是标量,可以定义为具有多个成员的结构.没有printf格式以可读的方式输出它.某些系统可能需要执行复杂的任务来处理文本文件,而不是每台计算机都是PC.

如果您对实现感兴趣,可以将其内容转储为十六进制字节:

#include <stdio.h>

int main(void) {
    FILE *fileptr = fopen("sample.txt","r+");
    fpos_t pos;

    if (fileptr && fgetpos(fileptr,&pos) == 0) {
        printf("contents of pos: ");
        for (size_t i = 0; i < sizeof(pos); i++) {
            printf("%02X",((unsigned char *)&pos)[i]);
        }
        printf("n");
    }
    return 0;
}

在许多现代系统中,您将获得0000000000000000,因为64位整数足以表示文件偏移所需的所有信息,但您不应该依赖于此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读