亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1017 | 回復: 0
打印 上一主題 下一主題

請教C文件問題(TC 2.0下),緊急!萬分感謝。! [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2004-12-21 17:22 |只看該作者 |倒序瀏覽
我在程序中定義了
struct product
{
char name[10];
float quantity;
char price[10];
char discount[10];
char date[9];
};

struct product prod[4],order[4],*orderpoint[4];
FILE *sf,*inf,*outf;
char filein[]="in.txt";
char jdate[9];
其中用prod[0]以文本形式寫入in.txt
以下是寫入文件的函數(shù)的節(jié)選
if((inf=fopen(filein,"a")==NULL)
    {
    gotoxy(3,16);
    cprintf("Can't open  %s",filein);
    getch();
    break;
    }
  else
    {
    gotoxy(3,16);
    cprintf("The note has been added into %s",filein);
    fwrite(&prod[0],sizeof(struct product),1,inf);
    fclose(inf);
    }

然后我想用order[0],以同樣方式,每次讀出一個單位的結構體數(shù)據,經判斷后,有選擇地賦給order[]數(shù)組其他變量,一直循環(huán)讀取到文件的末尾,然后對order[]數(shù)組中的元素進行排序。程序編譯都沒問題,運行的時候,每次進入該項的結果不同,與測試數(shù)據所預想的值不同。不知道每次以添加的形式寫入文件,會不會由于是文件結束,而另外添加什么標記?源程序如下:
void save_in_order()
{
int i;
order_link_prod();
printf("********List someday's products saved into storage by quantity order********";
draw_border(2,4,78,24);
goto(3,5);
cprintf("lease input the date of which you want to list the note(yymmdd):";
scanf("%s",jdate);
inf=fopen(filein,"r";
while(feof(inf)==0)
  {
  fread(&order[0],sizeof(struct product),1,inf);
  if(strcmp(order[0].date,jdate)==0)
    {
    for(i=1;i<N;i++)
      {
      if(strcmp(order[0].name,order.name)==0)
        order.quantity=order.quantity+order[0].quantity;
      }
    }
  }
fclose(inf);
digi_order_order();
}

void order_link_prod()
{
int i;
for(i=1;i<N;i++)
  {
  strcpy(order.name,prod.name);
  strcpy(order.price,prod.price);
  strcpy(order.discount,prod.discount);
  strcpy(order.date,jdate);
  }
}

void init_order_point()
{
int i;
for(i=1;i<N;i++)
  {
  orderpoint=&order;
  }
return;
}

void show_order_point()
{
int i;
draw_border(2,4,78,24);
textcolor(GREEN);
gotoxy(2,1);
cprintf("No.   Name      Quantity    Price(per)   Discount   Date";
for(i=1;i<N;i++)
  {
  gotoxy(2,1+i);
  cprintf("%d",i);
  gotoxy(8,1+i);
  cprintf("%s",(*orderpoint).name);
  gotoxy(18,1+i);
  cprintf("%6.2f",(*orderpoint).quantity);
    gotoxy(30,1+i);
    cprintf("%s",(*orderpoint).price);
    gotoxy(43,1+i);
    cprintf("%s",(*orderpoint).discount);
    gotoxy(54,1+i);
    cprintf("%s",(*orderpoint).date);
    }
  return;
}



void digi_order_order()
{
int i,j;
clrscr();
printf("******Show the list of storage by quantity******";
init_order_point();
for(j=1;j<N;j++)
  {
  for(i=1;i<N-j;i++)
    if(order.quantity<order[i+1].quantity)
       {orderpoint[0]=orderpoint;orderpoint=orderpoint[i+1];orderpoint[i+1]=orderpoint[0];}
  }
show_order_point();
init_order_point();
window(1,1,80,25);  /*恢復原窗口大小*/
return;
}
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP