當前位置:編程學習大全網 - 編程語言 - 計算機網絡編程c語言

計算機網絡編程c語言

/*使用全局數組來避免指針。讀寫文件的行數是預先確定的,可以運行。內容正確的話自己修改*/

# include & ltstdio.h & gt

# include & ltstring.h & gt

#定義MAX_NAME_LEN 80

typedef結構路由器

{

char destination[MAX _ NAME _ LEN];

int距離;

char next hop[MAX _ NAME _ LEN];

char NAME[MAX _ NAME _ LEN];

};//路由器結構定義

路由器PRx[1000],PRy[1000];

int r=0,n = 0;

int Dis_vector(char f1[],char f2[])

{

FILE * FP 1;

FILE * fp2

int I = 0;

if ((fp1 = fopen(f1," a")) == NULL||(fp2 = fopen(f2," r+")= = NULL)

返回0;

while(我& ltn){

(撬[我]。距離)++;撬,撬,撬。下壹步,窺探[我]。姓名);i++;}//路由器Y的路由更新

I = 0;

while(我& ltr){

如果(!strcmp(PRx[i].目的地,撬[我]。目的地){

fscanf(fp1," %s%d%s ",PRy[i]。目的地。(撬[我]。距離),撬【我】。next hop);i++;返回1;}//比較目的地址

else if(!strcmp(PRx[i].下壹步,窺探[我]。nexthop)){

PRx[i]。距離=撬[i]。距離;i++;返回1;}//比較下壹跳

else if(PRx[i].距離& gt窺探[我]。距離){

PRx[i]。距離=撬[i]。距離;strcpy(PRx[i].下壹步,窺探[我]。next hop);i++;返回1;}//比較距離

}

}//距離矢量算法

int input_r(char f[])

{

FILE * fp

int I = 0;

if ((fp = fopen(f," r))= = NULL)

返回0;

fscanf(fp," %s ",PRx[0]。姓名);

而(!feof(fp))

{

fscanf(fp," %4s%4d%4s ",PRx[i]。目的地。(PRx[i]。距離),PRx[i]。next hop);

i++;

}

r = I;

if ( fclose(fp))

返回0;

返回1;

}//讀取路由器x的路由表。

int input_n(char f[])

{

FILE * fp

int I = 0;

if ((fp = fopen(f," r))= = NULL)

返回0;

fscanf(fp," %s ",PRy[0]。姓名);

而(!feof(fp))

{

fscanf(fp," %4s%4d%4s ",PRy[i]。目的地。(撬[我]。距離),撬【我】。next hop);

i++;

}

n = I;

if ( fclose(fp))

返回0;

返回1;

}//讀取路由器y的路由表。

int輸出(char f[])

{

FILE * fp

int I = 0;

if ((fp = fopen(f," w))= = NULL)

返回0;

fprintf(fp," %s\n ",PRx[0]。姓名);

while(我& ltr)

{

fprintf(fp," %4s%4d%4s\n ",PRx[i]。目的地,PRx[i]。距離,PRx[i]。next hop);

i++;

}

if ( fclose(fp))

返回0;

返回1;

}//輸出X路由器更新後的路由表。

int main()

{

if(input _ r(" e:\ \ input _ r . txt ")= = 1)

{

if(input _ n(" e:\ \ input _ n . txt ")= = 1)

{

if ( Dis_vector("e:\\input_r.txt "," e:\\input_n.txt")== 1)

{

output(" e:\ \ output _ prx . txt ");

printf("Dis_vector成功!\ n ");

}

}

}

}

  • 上一篇:宿遷職業技術學院的專業介紹
  • 下一篇:教育行業軟文推廣怎麽寫?
  • copyright 2024編程學習大全網