吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2499|回复: 1
收起左侧

[C&C++ 转载] 一个关于C的fprintfΣfscanf函数问题,新手不知道哪里错了。请大神指点。

[复制链接]
小小平蛋 发表于 2016-12-27 12:53
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct address{
char name[20];
int age;
char cla[30];
char tele[20];
};
void save(address t[],int n){
int i;
FILE *fp;
if((fp=fopen("c:\\vc\4-8.txt","wb"))==NULL){
  printf("can not open this file");
  exit(1);
}
printf("\nSaving file\n");
fprintf(fp,"%d",n);
fprintf(fp,"\r\n");
for(i=0;i<n;i++){
  fprintf(fp,"%-20s%-30d%-30s%10s",t[i].name,t[i].age,t[i].cla,t[i].tele);
  fprintf(fp,"\r\n");}
  fclose(fp);
  printf("****保存成功****");
}
int load(address t[]){
  int i,n;
  FILE *fp;
   if((fp=fopen("c:\\vc\4-8.txt","wb"))==NULL){
  printf("can not open this file");
  exit(1);}
  fscanf(fp,"%d",&n);
  for(i=0;i<n;i++){
   fscanf(fp,"%s%d%s%s",,t[i].name,t[i].age,t[i].cla,t[i].tele);}
   fclose(fp);
   printf("****读取成功****");
   return n;
  }
  void list(address t[],int n){
   int i;
   printf("\n**********address********\n");
   printf("name\t\tage\t\tclass\t\ttelephone\n");
   printf("-----------------------------------------------\n");
   for(i=0;i<n;i++){
    printf("%-20s%-20d%-20s%10s\n",,t[i].name,t[i].age,t[i].cla,t[i].tele);
    if((i+1)%10==0){
     printf("请按任意键继续");
     getch();
    }
   }
   }
   main(){
    char i;
    struct address r[4],s[4]={
     {"刘嘉兴",20,"软件32",10010},
   {"张素生",20,"软件32",10010},
   {"潘续旭",20,"软件32",10086},
   {"杜文权",20,"软件32",10011},  
    };
    save(s,4);
    i=load(r);
    list(r,i);
   }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2016-12-27 14:30
改动的地方比较多,我应该是都做了注释标记
[C] 纯文本查看 复制代码
struct address{
	char name[20];
	int age;
	char cla[30];
	char tele[20];
};
void save(address t[], int n){
	int i;
	FILE *fp;
	if ((fp = fopen("c:\\vc\\4-8.txt", "wb")) == NULL){       //改
		printf("can not open this file");
		exit(1);
	}
	printf("\nSaving file\n");
	fprintf(fp, "%d", n);
	fprintf(fp, "\r\n");
	for (i = 0; i < n; i++){
		fprintf(fp, "%s,%d,%s,%s", t[i].name, t[i].age, t[i].cla, t[i].tele);  //改
		fprintf(fp, "\r\n");
	}
	fclose(fp);
	printf("****保存成功****");
}
int load(address t[]){
	int i, n;
	FILE *fp;
	if ((fp = fopen("c:\\vc\\4-8.txt", "rb")) == NULL){     //改
		printf("can not open this file");
		exit(1);
	}
	fscanf(fp, "%d", &n);
	for (i = 0; i < n; i++){
		fscanf(fp, "\r\n%[^,],%d,%[^,],%s",  t[i].name, &t[i].age, t[i].cla, t[i].tele);  //改
	}
	fclose(fp);
	printf("****读取成功****");
	return n;
}
void list(address t[], int n){
	int i;
	printf("\n**********address********\n");
	printf("name\t\tage\t\tclass\t\ttelephone\n");
	printf("-----------------------------------------------\n");
	for (i = 0; i < n; i++){
		printf("%-20s%-20d%-20s%10s\n",  t[i].name, t[i].age, t[i].cla, t[i].tele);  //改
		if ((i + 1) % 10 == 0){
			printf("请按任意键继续");
			getch();
		}
	}
}
int main(){
	char i;
	struct address r[4], s[4] = {                     //改
		{ "刘嘉兴", 20, "软件32", "10010" },
		{ "张素生", 20, "软件32", "10010" },
		{ "潘续旭", 20, "软件32", "10086" },
		{ "杜文权", 20, "软件32", "10011" },
	};
	save(s, 4);
	i = load(r);
	list(r, i);
	return 0;
}

免费评分

参与人数 1热心值 +1 收起 理由
学习打败高富帅 + 1 用心讨论,共获提升!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 08:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表