|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|