C语言帮我看段程序,怎么输出是乱码呀?

[复制链接]
查看11 | 回复3 | 2011-5-3 10:56:32 | 显示全部楼层 |阅读模式
#include
#include
#include
int main()
{
FILE *fp;
fp=fopen("222","wt+");
char *p;
char r[10];
p=(char *)malloc(9);
p="01234\n789";
printf("%d\n",strlen(p));
fwrite(p,1,strlen(p),fp);
fread(r,1,9,fp);
r[9]='\0';
printf("%s\n",r);
fclose(fp);
return 0;
}

回复

使用道具 举报

千问 | 2011-5-3 10:56:32 | 显示全部楼层
在你fwrite完后,fp指针就指向这个文件的末尾了,这个时候你读不出东西的,所以在 fread钱,应该先把指针放回文件头, 看我改后的代码, 用 fseek 来讲指针归位。另外, fopen 时,正确的写法是 "w+t"#include #include #include int main(){ FILE *fp; fp=fopen("222","w+t"); char *p; char r[10]; p=(char *)malloc(9); p="01234\n789"; printf("%d\n",strlen(p)); fw
回复

使用道具 举报

千问 | 2011-5-3 10:56:32 | 显示全部楼层
#include #include #include int main(){FILE *fp;fp=fopen("222","r"); //一定要注意打开2进制文件和打开文本文件的区别char *p;char r[10];p=(char *)malloc(10);
回复

使用道具 举报

千问 | 2011-5-3 10:56:32 | 显示全部楼层
文件读写的乱码吧,看下你要读写文件的编码和fread的默认编码是否一致
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行