用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格式了