首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

输出乱码有关问题,跪求教

2012-03-15 
输出乱码问题,跪求教想写一个通讯录,结果输出时汉字变成乱码。#includestdio.h#includestdlib.hstruct

输出乱码问题,跪求教
想写一个通讯录,结果输出时汉字变成乱码。
#include<stdio.h>
#include<stdlib.h>
struct student
{
char name[10],address[20],phone[12],pc[7];//邮政编码
};
void list()//构造函数,实现显示通讯录中的内容
{
  FILE *fp;
  struct student stu;
  fp=fopen("txl.txt","r");
  printf("\n姓名\t地址\t电话号码\t邮政编号\n");
  while(!feof(fp))
  {
fread(&stu,sizeof(struct student),1,fp);
printf("%s\t%s\t%s\t%s\n",stu.name,stu.address,stu.phone,stu.pc);
fprintf(fp,"%s\t%s\t%s\t%s\n",stu.name,stu.address,stu.phone,stu.pc);
  }
  getchar();
  fclose(fp);
}
void intput()//构造函数,实现学生资料的输入,并存入指定的文件
{
FILE *fp;
struct student stu;
scanf("%s%s%s%s",stu.name,stu.address,stu.phone,stu.pc);
fp=fopen("txl.txt","w");
if(fp==NULL)
{
printf("file open error!\n");
exit(0);
}
fclose(fp);
list();
}
void main()
{
char choice;
while(1)
{
printf("1.按1选择请输入学生信息\n");
  printf("2.按2选择添加学生信息\n");
printf("3.按3选择删除学生信息\n");
printf("4.按4选择查找学生信息\n");
printf("5.按5选择现实通讯录\n");
printf("请输入您的选择\n");
choice=getchar();
switch(choice)
{
case '1': printf("请输入学生信息:姓名 地址 电话 邮政编号\n如:\t 张三 广东省 18392397969 515154\n");
intput();break;
// case '2': append();break;
// case '3': dele();break;
// case '4': fine();break;
case '5': list();break;
}
system("pause");
}
}
我按1
输入 张三 广东省 18392397969 515154
结果输出乱码

[解决办法]
intput()函数中,你只是打开了文件都没有写入文件的代码,然后你就关闭了,当然读出来是乱码了
[解决办法]
字符转换要注意

热点排行