gpt4 book ai didi

c - ppm 文件的基本文件 I/O

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:31 26 4
gpt4 key购买 nike

我正在尝试编写一个程序来读取 .ppm 文件并将数据保存在结构中。不过,为了能够做到这一点,我需要能够打开该文件,但目前无法正常工作。我显然做错了什么。您能否看一下代码,看看是否可以找出问题所在?

#include <stdio.h>
#include <stdlib.h>

int readFile(char *filename);

int main(void)
{
readFile("myfile.ppm");
return 0;
}

int readFile(char *filename)
{
int x = 0;
FILE *pFile;
pFile = fopen(filename, "rb");
if(!pFile)
{
fprintf(stderr, "Unable to open file %s\n", filename);
exit(1);
}

fscanf(pFile, "%d", &x);
fclose(pFile);
printf("%d\n", x);
return 0;
}

这只是在标准输出上给我一个“\n”。我应该将它 fscanf 成一个数组而不是一个 int 吗?

根据您的反馈,我将代码编辑为扫描两个字符:

int readFile(char *filename)
{
char first, second = 0;
FILE *pFile;
pFile = fopen(filename, "rb");
if(!pFile)
{
fprintf(stderr, "Unable to open file %s\n", filename);
exit(1);
}

fscanf(pFile, "%c%c", &first, &second);
fclose(pFile);
printf("First: %c, Second: %c\n", first, second);
return 0;
}

最佳答案

根据 http://en.wikipedia.org/wiki/Netpbm_format该文件以两个字节序列开头:P1P2P3(作为人类可读文本 - ASCII)。所以将其读入 int 是行不通的。您应该读入一个 char(代表 P),然后读入另一个 char 作为数字,并找出您的文件的格式。然后根据格式采取进一步的步骤。

关于c - ppm 文件的基本文件 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621260/

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