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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章