Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向C stdin以从C+读取+;细流 我有一些代码,用C写的,我在C++项目中使用。我需要添加一些功能以及单元测试。不幸的是,使用getchar和其他C IO函数的方式并不容易测试,这是硬编码的_C++_C_Stdin_Getchar_Istringstream - Fatal编程技术网

重定向C stdin以从C+读取+;细流 我有一些代码,用C写的,我在C++项目中使用。我需要添加一些功能以及单元测试。不幸的是,使用getchar和其他C IO函数的方式并不容易测试,这是硬编码的

重定向C stdin以从C+读取+;细流 我有一些代码,用C写的,我在C++项目中使用。我需要添加一些功能以及单元测试。不幸的是,使用getchar和其他C IO函数的方式并不容易测试,这是硬编码的,c++,c,stdin,getchar,istringstream,C++,C,Stdin,Getchar,Istringstream,我想做的是模拟Cstdin。有没有办法创建C++ StrugSuth并重定向C STDIN < /C> >从中读取?< /P> 咬紧牙关:我知道如何用 STD::CIN < /Cord>但不是 STDIN < /C> >。我将咬紧牙关,花一些时间将C代码重写为适当的C++代码。虽然我可以想到一些丑陋的黑客来完成这一点,但我不能冒这样的风险:这个代码,我的名字,最终会找到它的方式成为编译C的一个特色文章,而不是C++!它们是不同的语言。看一看freopen:但是,如果你只能将stdin重新打开到

我想做的是模拟C
stdin
。有没有办法创建C++ <代码> StrugSuth并重定向C<代码> STDIN < /C> >从中读取?< /P>
咬紧牙关:我知道如何用<代码> STD::CIN < /Cord>但不是<代码> STDIN < /C> >。我将咬紧牙关,花一些时间将C代码重写为适当的C++代码。虽然我可以想到一些丑陋的黑客来完成这一点,但我不能冒这样的风险:这个代码,我的名字,最终会找到它的方式成为编译C的一个特色文章,而不是C++!它们是不同的语言。看一看
freopen
:但是,如果你只能将
stdin
重新打开到
文件
源代码,你可以使用特定于平台的技术来破解它,创建一个与你的
stringstream
相对应的“虚拟”文件,但是性能会很差,因为它会让你的另一个选项可能是
#定义getchar
,如果你敢…用freopen打开一个命名管道并从我的测试中写入它怎么样?