iMacPromax
???(iPhone)?????
2021-01-21 23:02

freopen影响scanf输入,怎么回事?

  • 问答团队
  • c++
  • c语言
  • 测试用例

一段测试代码,用来测试   freopen("out.txt", "w", stdin);   对输入的影响

#include <bits/stdc++.h>
using namespace std;

int main()
{
	    
//	freopen("in.txt", "r", stdin);

    freopen("out.txt", "w", stdin);

	int a=-100;
	scanf("%d",&a);
	printf("%d",a);
}

调试图:

a初始化为-100,此时控制台无法输入,可直接“下一步”

a的值一直为初始值-100

可一旦注释掉freopen("out.txt", "w", stdin);

整个程序就正常了(cin输入也有这个问题)

还发现freopen("in.txt", "r", stdin);并不会影响scanf输入,程序正常。

困扰了我好久,无意间注释掉这行才发现。

 

小白求救各位大神原因

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

5条回答