|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位大神,请教一下,程序编译通过,测试出现乱码,为什么? #include <stdio.h>
#include <stdlib.h>
struct student_infor
{
int num;
char name[10];
int id;
char sex;
int score;
}stu[10];
int main()
{
int i;
FILE *fp;
char filename[10];
printf("Enter file name:\n");
scanf("%s", filename);
if ((fp = fopen(filename, "rb")) == NULL) /* 如果打开文件失败,退出 */
{
printf("Open file fails.\n");
exit(0);
}
/* 输出第1,3,5,7,9个学生的数据 */
for(i = 0; i < 10; i += 2)
{
fseek(fp, (i * sizeof(struct student_infor)), 0); /* 移动文件位置标记分别至第1,3,5,7,9个学生数据开头 */
fread(&stu[i], sizeof(struct student_infor), 1, fp); /* 读一个学生的数据到stu[] */
printf("%-3d, %-10s, %-10d, %c, %-5d\n", stu[i].num, stu[i].name, stu[i].id, stu[i].sex, stu[i].score); /* 输出 */
}
fclose(fp);
printf("\nHello world!\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct student_infor
{
int num;
char name[10];
char sex;
}stu[10],stu1[10];
void WriteFopen()
{
int i;
FILE *fp;
if ((fp = fopen("123.txt", "w+")) == NULL)
{
printf("错误!\n");
getchar();
exit(0);
}
for (i = 0; i < 10; ++i)
{
printf("请输入学号(数字):");
scanf("%d", &stu[i].num);
getchar();
printf("请输入名字:");
scanf("%s", &stu[i].name);
getchar();
printf("请输入性别:");
scanf("%c", &stu[i].sex);
getchar();
}
for (i = 0; i < 10; ++i)
{
fwrite(&stu[i], sizeof(struct student_infor), 1, fp);
}
fclose(fp);
return;
}
int main()
{
WriteFopen();
int i;
FILE *fp;
char filename[10];
printf("Enter file name:\n");
scanf("%s", filename);
getchar();
if ((fp = fopen(filename, "rb")) == NULL) /* 如果打开文件失败,退出 */
{
printf("Open file fails.\n");
exit(0);
}
/* 输出第1,3,5,7,9个学生的数据 */
for (i = 0; i < 10; i += 2)
{
//fseek(fp, (i * sizeof(struct student_infor)), SEEK_CUR); /* 移动文件位置标记分别至第1,3,5,7,9个学生数据开头 */
fread(&stu1[i], sizeof(struct student_infor), 1, fp); /* 读一个学生的数据到stu[] */
printf("%-3d, %-10s, %c\n", stu1[i].num, stu1[i].name, stu1[i].sex); /* 输出 */
}
fclose(fp);\
printf("\nHello world!\n");
getchar();
return 0;
}
|
|