Vraag I / O omleiden in Xcode 4


Ik heb zojuist Xcode 4 geïnstalleerd en probeer de invoer van een bestand naar mijn C ++ -programma om te leiden. Ik heb geprobeerd de gebruikelijke "<infile.txt" te gebruiken in het gedeelte "Argumenten" van mijn Run-schema, maar dat werkte niet. Ik kon input en output in Xcode 3 prima omleiden (door de argumenten voor het uitvoerbare bestand te bewerken). Eventuele suggesties over hoe dit te doen in de nieuwe versie?

Bedankt!

Samer


19
2018-03-30 17:55


oorsprong


antwoorden:


Ik heb verschillende soorten argumenten getest en het lijkt erop dat Xcode een bug bevat met argumenten (laatste test: Xcode 8).

Maar er is één alternatief om met een vergelijkbaar effect te simuleren. U moet de omgevingsvariabelen gebruiken.

Voeg een omgevingsvariabele toe met de bestandsnaam die u wilt omleiden:

enter image description here

Dan moet je in je code dit bestand "doorsturen" naar de standaard invoer (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;
}

dat is het ... slechts 2 regels code

ifstream arq(getenv("MYARQ"));
cin.rdbuf(arq.rdbuf());

het is niet de beste oplossing, maar terwijl xcode dit probleem heeft, is dit de enige oplossing!


8
2018-05-24 20:06