gpt4 book ai didi

c++ - 在 freopen() 之后从标准输入获取输入

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:23 27 4
gpt4 key购买 nike

你好,我想知道在我调用之后我们如何再次从 stdin 获取输入:

freopen("Smefile.txt","r",stdin);

准确地说,我希望我的程序的第一个部分应该从指定的文件中获取输入,下一部分将从标准输入中获取。

喜欢:

 int a,b;
freopen("Smefile.txt","r",stdin);
scanf("%d",&a);

{
//some block here such that the next cin/scanf takes b from standard input
}
cin>> b;
cout <<a<<" "<<b;

有什么想法吗?

最佳答案

你不能。使用

FILE *input = fopen("Smefile.txt","r");

// read stuff from file

fclose(input);
input = stdin;

相反。

当您在同一个流中混合使用 C++ 和 C 风格的 I/O 时,这将无济于事,无论如何我都不推荐这样做。

(如果你碰巧在 Linux 上,你可以重新打开 /dev/stdin。在 Linux/Unix 上,你也可以使用 Jerry Coffin 的 dup2 技巧,但是那甚至更毛茸茸。)

关于c++ - 在 freopen() 之后从标准输入获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973905/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com