c语言打开文件问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:29:56
请教这个程序在读取已经存储的文件时会显示windows中内存*…………不能为written的错误,能帮我修改修改吗?太谢谢了!

这是打开文件部分程序
{
int i=0;
Student *p;
FILE *fp;
char open[20];
p=Q->next;
printf("请输入文件路径:");
scanf("%s",open);
if((fp=fopen(open,"w+"))==NULL)
{
printf("打开失败!");
return 0;
}
fprintf(fp,"|学号\t|姓名\t|性别\t|语文\t|英语\t|数学\t|均分\t|\n");

while(p!=NULL&&i<amount)
{
文件是存在的,为txt格式,但我读出时错误,读出应该为fprintf(fp “……………………")吧;
顺便问下 程序再次打开时,是否要先读取原文件,才能进行查询,排列等操作?

是不是你给的open为一个不存在的文件 ,下面可以参考

char ch;
FILE *input = fopen( "stuff", "r" );
ch = getc( input );

你是那个文件操作打开文件以后一直没有关吧。如果文件没有关闭第二次开的时候就会出现不可写的问题

while(p!=NULL&&i<amount)

这个地方要用或运算不能与与运算
while(p!=NULL&&||i<amount)

下次操作当然要先读原文件呀。将文件里的信息读当你设置的缓冲区。然后对缓冲区的数据进行操作。