gpt4 book ai didi

c++ - 使用标准输入重定向输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:35 24 4
gpt4 key购买 nike

我正在编写一个短程序来对整数数组进行排序。我在打开输入文件“prog1.d”时遇到问题。作业要求在程序目录中创建符号链接(symbolic link),我在创建对象和可执行文件后,按如下方式调用程序...

prog1.exe < prog1.d &> prog1.out

我知道我的冒泡排序正确且高效地工作,因为我使用了我自己的测试“txt”文件。

作业说:

Your program gets the random integers from stdin and puts them in an array, sorts the integers in the array in ascending order, and then displays the contents of the array on stdout.

如何使用“cin”读取文件直到 EOF 并将整数添加到我的数组 a[] 中?

到目前为止,这是我的代码:

int main( int argc, char * argv[] )
{
int a[SIZE];

for ( int i=1; i<argc; i++)
{
ifstream inFile; // declare stream
inFile.open( argv[i] ); // open file
// if file fails to open...
if( inFile.fail() )
{
cout << "The file has failed to open";
exit(-1);
}
// read int's & place into array a[]
for(int i=0; !inFile.eof(); i++)
{
inFile >> a[i];
}
inFile.close(); // close file
}

bubbleSort(a); // call sort routine
printArr(a); // call print routine

return 0;
}

我知道打开流是错误的方法,我只是将它用于测试“txt”文件,以确保我的排序有效。老师说我们应该将输入重定向到“cin”,就像有人在键盘上输入整数一样。

如有任何帮助,我们将不胜感激。

最佳答案

当您在命令行上使用重定向时,argv 不包含重定向。相反,指定的文件只是成为您的 stdin/cin。因此您不需要(也不应该尝试)显式打开它——只需从标准输入中读取,就像您在输入未重定向时从终端读取一样。

关于c++ - 使用标准输入重定向输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232297/

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