首页 新闻 会员 周边

c++ 为什么我想从两个txt读入文件,再输出到另一个txt里(可以运行),结果一直在变,是哪里出错了吗?正确的做法是啥?

0
悬赏园豆:20 [待解决问题]

include<iostream>

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不变,结果一直在变?

阿炫仔的主页 阿炫仔 | 初学一级 | 园豆:157
提问于:2023-02-11 21:55
< >
分享
所有回答(2)
1

按照代码逻辑,stdin最终绑定到了mathcj.txt上。
如果mathcj.txt中只有一个数字,那将会准确地读到局部变量n中,第二个局部变量pk由于无数可读,其值是未知的。
建议下次提问更准确地描述自己的问题,比如在该提问中应该公布shiyan.txtmathcj.txt两个文件的内容。

zwjason | 园豆:194 (初学一级) | 2023-02-15 17:42
0

你的代码:

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;
}
xzhiji | 园豆:202 (菜鸟二级) | 2023-07-31 21:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册