gpt4 book ai didi

c - 从文件打印错误值

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:08 27 4
gpt4 key购买 nike

我尝试了以下代码将结构写入文件:

#include<stdio.h>

struct record
{
char name[80];
int roll;
};

int main( )
{
FILE* p=NULL;
int length=0;
char* file="abcd.txt";
struct record r1={"abcd",55};
p=fopen(file,"w");
if (p==NULL) {
printf("Error in opening file");
}
length=sizeof(r1);
fwrite(&r1,length,1,p);
fclose(p);
printf("Written successfully\n");
free(r1);
}

当我尝试使用 :

读取以下文件时
#include<stdio.h>

main( )
{
int c;
FILE* p=NULL;
p=fopen("abcd.txt","r");
if (p) {
while ((c=getc(p)) != EOF)
putchar (c);
fclose(p);
}
}

当我运行最后一个程序时,打印的值是:

abcd7

第一个字段“abcd”正确打印,但下一个打印值是 7,尽管我试图在文件中写入 55。出了什么问题?

最佳答案

这是因为您将整数55读取为字符,而在ASCII字母表中,值55与字符相同'7'

您需要使用 fread 以与编写结构相同的方式读取结构。

关于c - 从文件打印错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379729/

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