#include "time.h"
#include "stdio.h"
void main()
{
int j,i=0,p[50],z[4],m[4],a[4],h[4]
float pp[50]
float l,q,n
FILE *fp=NULL,*fp1=NULL//定义文件指针
fp=fopen("E:\\data1.txt","r") //打开文件
fp1=fopen("E:\\data.txt","w") //文件放在E盘
if(fp==NULL) //判断文件打开的正确性
{
printf("\n不能打开该文件!")
getch()
exit(1)
}
if(fp1==NULL) //判断文件打开的正确性
{
printf("\n不能写该文件!")
getch()
exit(1)
}
printf("输入平时、期中、期末的比例\n")
scanf("%f %f %f",&l,&q,&n)
do {
fscanf(fp,"%d %d %d %d ",&h[i],&a[i],&z[i],&m[i])
pp[i+1]=a[i]*l+z[i]*q+m[i]*n
i++
} while(feof(fp)==0)
//原代码
//do {
// fscanf(fp,"%d %d %d %d ",&h[i],&a[i],&z[i],&m[i])
// 当i=0,得到h[0]=1,a[0]=60,z[0]=70,m[0]=40
// i++
// 此时,i=1,但是a[1],z[1],m[1]还没有正式赋值,
// 例如,a[1]=-2,z[1]=-2,m[1]=1342177377
// pp[i]=a[i]*l+z[i]*q+m[i]*n
// 此时,pp[1]=a[1]*l+z[1]*q+m[1]*n
// l=0.5,q=0.2,n=0.3,得出
// pp[1]= -2*0.5-2*0.2+1342177377*0.3=402653212
// pp[1]=402653212不是代码所需要的结果
//} while(feof(fp)==0)
fclose(fp)
i--
for(j=0j<=ij++)
{
//计算出的结果保留1位小数
fprintf(fp1,"%d %d %d %d %0.1f \n",h[j],a[j],z[j],m[j],pp[j+1])
//原代码fprintf(fp1,"%d,%d,%d,%d,%f,\n",h[j],a[j],z[j],m[j],pp[j+1])
}
fclose(fp1)
}
在c语言中,创建单链表需要使用到malloc函数动态申请内存;文件的读写需要首先使用fopen函数打开文件,然后使用fscanf,fgetc, fgets,fprintf,fputc,fputs等函数读写函数,最后读写完毕要使用fclose函数关闭函数。下面的源程序展示了关于单链表如何从文件中读取数据和往文件里存入数据。
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
typedef struct node {
int data
struct node *next
}node
//从文件中读取数据存入链表
node *createlink()
{
node *head =(node*)malloc(sizeof(node))
int t
node *p
node *q
p=q=head
FILE * r= fopen("input.txt","r")
if(r==NULL)
{
printf("打开文件失败!")
return NULL
}
while(fscanf(r,"%d",&t)!=EOF)
{
q= (node*)malloc(sizeof(node))
q->data=t
p->next=q
p=q
}
p->next=NULL
return head
}
//输出链表到屏幕和文件output.txt
void outlink(node *head)
{
node *p=head->next
FILE *w =fopen("output.txt","w")
if(w==NULL)
{
printf("打开文件失败!")
return
}
while(p)
{
//输出链表节点数据到屏幕
printf("%d ",p->data)
//输出链表节点数据到文件output.txt
fprintf(w,"%d ",p->data)
p=p->next
}
printf("\n")
fprintf(w,"\n")
fclose(w)
return
}
int main()
{
node *head
int n,m
head=createlink()
outlink(head)
system("pause")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)