
关于c语言 文件操作的问题
现在我的桌面上有一个记事本里,里面有一些信息(下面是记事本里的信息)图书编号图书名字图书书作者1ab2cd3ef我写了个从中删除信息的函数,但是不知道桌面就报错#incl...
现在我的桌面上有一个记事本里,里面有一些信息(下面是记事本里的信息)
图书编号 图书名字 图书书作者
1 a b
2 c d
3 e f
我写了个从中删除信息的函数,但是不知道桌面就报错
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iostream.h>
struct book /*书的类型*/
{
int booknum; //图书编号
char bookname[10]; //图书名字
char bookcreat[10]; //图书作者
int lendture; /*借书和还书判断*/
}books[5000];
main()
{
FILE *fp;
//fp=fopen("C:\\Users\\Administrator\\Desktop\\book.txt","a");
int i=0,j;
int count,mark,delbooknum;
printf("请输入要删除的图书编号\n");
scanf("%d",&delbooknum);
while(j)
{
while(!feof(fp))
{
fscanf(fp,"%d %s %s",books[i].booknum,books[i].bookname,books[i].bookcreat);
//printf("%d %s %s",books[i].booknum,books[i].bookname,books[i].bookcreat) ;
if(books[i].booknum==delbooknum)
mark=i;
//printf("%d\t%d\t\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat,books[i].lendture);
count=i++;
}
fclose(fp);
fp=fopen("C:\\Users\\Administrator\\Desktop\\book.txt","a");
for(i=1;i<count;i++)
{
if(i!=mark)
fprintf(fp,"%d\t\t%s\t\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat);
}
printf("继续删除请按1,退出请按0:\n");
scanf("%d",&j);
}
getch();
}
请高手帮忙?在线等。
如果觉得这样写彻底不对,那么就请高手指点一下应该怎么写。 展开
图书编号 图书名字 图书书作者
1 a b
2 c d
3 e f
我写了个从中删除信息的函数,但是不知道桌面就报错
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iostream.h>
struct book /*书的类型*/
{
int booknum; //图书编号
char bookname[10]; //图书名字
char bookcreat[10]; //图书作者
int lendture; /*借书和还书判断*/
}books[5000];
main()
{
FILE *fp;
//fp=fopen("C:\\Users\\Administrator\\Desktop\\book.txt","a");
int i=0,j;
int count,mark,delbooknum;
printf("请输入要删除的图书编号\n");
scanf("%d",&delbooknum);
while(j)
{
while(!feof(fp))
{
fscanf(fp,"%d %s %s",books[i].booknum,books[i].bookname,books[i].bookcreat);
//printf("%d %s %s",books[i].booknum,books[i].bookname,books[i].bookcreat) ;
if(books[i].booknum==delbooknum)
mark=i;
//printf("%d\t%d\t\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat,books[i].lendture);
count=i++;
}
fclose(fp);
fp=fopen("C:\\Users\\Administrator\\Desktop\\book.txt","a");
for(i=1;i<count;i++)
{
if(i!=mark)
fprintf(fp,"%d\t\t%s\t\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat);
}
printf("继续删除请按1,退出请按0:\n");
scanf("%d",&j);
}
getch();
}
请高手帮忙?在线等。
如果觉得这样写彻底不对,那么就请高手指点一下应该怎么写。 展开
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct book /*书的类型*/
{
int booknum; //图书编号
char bookname[10]; //图书名字
char bookcreat[10]; //图书作者
int lendture; /*借书和还书判断*/
}books[5000];
void main()
{
FILE *fp;
int i=0,j;
int count, mark, delbooknum;
j = 1;
while(j) //?j都没初始化怎么用啊
{
count = 0;
mark = 0;
i = 0;
printf("请输入要删除的图书编号:");
scanf("%d", &delbooknum);
fp = fopen("C:\\book.txt","r");
fscanf(fp,"%s %s %s",books[0].bookname,books[0].bookname,books[0].bookname);
//文件里面第一行信息如果是“图书编号 图书名字 图书作者”就把这句留下吧
while(!feof(fp))
{
fscanf(fp,"%d %s %s",&books[i].booknum,books[i].bookname,books[i].bookcreat);
if(books[i].booknum==delbooknum)
mark=i;
count = i++;//.....
}
fclose(fp);
fp=fopen("C:\\book.txt","w");
fprintf(fp,"图书编号 图书名字 图书作者\n");
for(i=0;i<count;i++) // i=0
{
if(i!=mark)
fprintf(fp,"%d\t%s\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat);
}
fclose(fp);
printf("继续删除请按1,退出请按0:\n");
scanf("%d",&j);
}
getch();
}
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct book /*书的类型*/
{
int booknum; //图书编号
char bookname[10]; //图书名字
char bookcreat[10]; //图书作者
int lendture; /*借书和还书判断*/
}books[5000];
void main()
{
FILE *fp;
int i=0,j;
int count, mark, delbooknum;
j = 1;
while(j) //?j都没初始化怎么用啊
{
count = 0;
mark = 0;
i = 0;
printf("请输入要删除的图书编号:");
scanf("%d", &delbooknum);
fp = fopen("C:\\book.txt","r");
fscanf(fp,"%s %s %s",books[0].bookname,books[0].bookname,books[0].bookname);
//文件里面第一行信息如果是“图书编号 图书名字 图书作者”就把这句留下吧
while(!feof(fp))
{
fscanf(fp,"%d %s %s",&books[i].booknum,books[i].bookname,books[i].bookcreat);
if(books[i].booknum==delbooknum)
mark=i;
count = i++;//.....
}
fclose(fp);
fp=fopen("C:\\book.txt","w");
fprintf(fp,"图书编号 图书名字 图书作者\n");
for(i=0;i<count;i++) // i=0
{
if(i!=mark)
fprintf(fp,"%d\t%s\t%s\n",books[i].booknum,books[i].bookname,books[i].bookcreat);
}
fclose(fp);
printf("继续删除请按1,退出请按0:\n");
scanf("%d",&j);
}
getch();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询