I just installed Xcode 4 and I'm trying to redirect input from a file to my C++ program. I've tried using the usual "< infile.txt" in the "Arguments" section of my Run scheme, but that didn't work. I was able to redirect input and output in Xcode 3 just fine (by editing the arguments for the executable). Any suggestions on how to do this in the new version?
Thanks!
Samer
stdin: The standard input pipe is where a command receives input. By default, you enter input from the command-line interface. You can redirect the output from files or other commands to stdin.
To redirect the output of a command to a file, type the command, specify the > or the >> operator, and then provide the path to a file you want to the output redirected to. For example, the ls command lists the files and folders in the current directory.
I tested with various types of Arguments and it appears that Xcode have a bug with Arguments (last test: Xcode 8).
But there is one alternative to simulate with similar effect. You must use the Environment Variables.
Add a Environment Variable with the file name you want to redirect:
Then in your code you must "redirect" this file to the standard input (cin):
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main (int argc, const char * argv[])
{
ifstream arq(getenv("MYARQ"));
cin.rdbuf(arq.rdbuf());
string value;
cin >> value;
cout << value;
return 0;
}
that's it... only 2 lines of code
ifstream arq(getenv("MYARQ"));
cin.rdbuf(arq.rdbuf());
it's not the best solution, but while xcode have this problem this is the only solution !
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With