freopen

用freopen進行文件讀入,輸出卻和粘貼輸出得到的結果不同

#include<stdio.h>
#define MAXVER 501
#define MAXEDG 12501
typedef struct{
	int vex[MAXVER];//teams in every city
	int arc[MAXVER][MAXVER];//length of road
	int N, M;
}Mgraph;

Mgraph g;
int visited[MAXVER], c1, c2, count, max, min = 66235;

void read(){
	int i, j, r, c;
	scanf("%d%d%d%d", &(g.N), &(g.M), &c1, &c2);
	for(i = 0; i < g.N; i++)//the number of teams in i city
		scanf("%d", &g.vex[i]);

	for(i = 0; i < MAXVER; i++)//init, make every roads be 0
		for(j = 0; j < MAXVER; j++){
			g.arc[i][j] = 0;
		}
		for(i = 0; i < g.M; i++){//length of the road
			scanf("%d%d%d", &r, &c, &j);
			g.arc[r][c] = g.arc[c][r] = j;    
		}

}


void out()
{
	int i, j;
	printf("%d %d %d %d\n", g.N, g.M, c1, c2);
	for(i = 0; i < g.N; i++)
		printf("%d\t", g.vex[i]);
	printf("\n");
	printf("\t");
	for(i = 0; i < g.N; i++)
		printf("%d\t", i);
	printf("\n");
	printf("\n");
	for(i = 0; i < g.N; i++){
		printf("%d\t", i);
		for(j = 0; j < g.N; j++)
		{
			printf("%d\t", g.arc[i][j]);
		}
		printf("\n");
	}
}
int main(){

	freopen("in.txt", "r", stdin);
	read();
//	out();
//	dfs(c1, 0, g.vex[c1]);
//	printf("%d %d\n", count, max); 
	return 0;
}
輸入數據如下:

5 6 0 2
1 2 1 5 3
0 1 1
0 2 2
0 3 1
1 2 1
2 4 1
3 4 1

將其正常輸入,得到的結果如下:



如果是用重定向的方法讀入數據,輸出結果如下:



這是爲什麼呢?


已解決:
不是函數問題,而是因爲文件存成了in.txt.txt了
可能是因爲win8中筆記本已存成了.txt格式了


發佈了84 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章