关于 stdin 重定向的问题

发布于 2022-08-24 01:33:17 字数 570 浏览 17 评论 0

#include "iostream"
using namespace std ;

int main()
{
	char str[128] ;

	freopen( "a.txt" , "r" , stdin ) ;
	cin >> str ;
	cout << str << endl ;
	fclose(stdin) ;


	freopen( "b.txt" , "r" , stdin ) ;
	cin >> str ;
	//scanf( "%s" , str ) ; 如果用scanf 是可以的
	cout << str << endl ;	
	return 0 ;
}

a.txt 里只有一行字符串 “aaaaaaaaaaaaaaa”
b.txt 里只有一行字符串 “bbbbbbbbbbbbbbb”
但是只看输出 a.txt 里的 求解。

如果使用注释掉的那一行,注释掉其前面的 cin >> str 的话 , 则两个文件里的都打印出来了 。求解。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮光之海 2022-08-31 01:33:17
#include "iostream"
#include<stdio.h>
using namespace std ;

int main()
{
	char str[128] ;

	freopen( "a.txt" , "r" , stdin ) ;
	cin >> str ;
	cout << str << endl ;
	fclose(stdin) ;


	freopen( "b.txt" , "r" , stdin ) ;
	cin >> str ;
	//scanf( "%s" , str ) ; 如果用scanf 是可以的
	cout << str << endl ;   
	return 0 ;
}

请输入图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文