using namespace std;
int main(){
freopen("shiyan.txt","r",stdin);
freopen("mathcj.txt","r",stdin);
freopen("bjfenshu.txt","w",stdout);
int n,pk;
cin>>n;
cin>>pk;
cout<<n*pk;
return 0;
}
shiyan.txt中是n的值,mathcj.txt是pk的值,我想把他们的积输出到另外一个文件中,为什么shiyan.txt和mathcj.txt不变,结果一直在变?
按照代码逻辑,stdin
最终绑定到了mathcj.txt
上。
如果mathcj.txt
中只有一个数字,那将会准确地读到局部变量n
中,第二个局部变量pk
由于无数可读,其值是未知的。
建议下次提问更准确地描述自己的问题,比如在该提问中应该公布shiyan.txt
和mathcj.txt
两个文件的内容。
你的代码:
freopen("shiyan.txt","r",stdin);
上面这一句执行后,输入重定向到 shiyan.txt,接着下面这句
freopen("mathcj.txt","r",stdin);
又重定向到 mathcj.txt,而这时
cin>>n;
cin>>pk;
是从 mathcj.txt 读取 n 和 pk,很明显不对,读取到 n 但 pk 读不到,所以 pk 值不确定一直变。
修改参考:
int main(){
int n,pk;
freopen("shiyan.txt","r",stdin);
cin>>n;
freopen("mathcj.txt","r",stdin);
cin>>pk;
freopen("bjfenshu.txt","w",stdout);
cout<<n*pk;
return 0;
}