2016-07-20 4 views
-3

Ich versuche, ein Zeichenfolgenarray zu erstellen, um die Zeichenfolgen zu enthalten, die von einer Void-Funktion generiert werden. Ich bin sehr verwirrt darüber, ob oder wie ich das machen kann. Der folgende Code gibt mir einen Fehler über "kein passender Konstruktor".Hinzufügen von Zeichenfolgen, die von Funktion in einem Array generiert werden

getWords("theFile.dat");  // Function to extract list of strings from file  
string wordsList[] = {getWords("theFile.dat")}; // Add strings from function to array 
+0

Wenn es eine "void" -Funktion ist, wie erzeugt es Zeichenketten? – Barry

+0

Es verwendet Cout. Dies ist eine Funktion, die von einer anderen Person gegeben wird, mit der ich arbeite, daher kann ich sie nicht von einer void-Funktion ändern. –

+2

Dann können Sie damit keine String-Liste initialisieren. –

Antwort

3

Wenn (wie Sie Ihren Kommentar Zustand) der Code verwendet cout die Saiten zu drucken, dann haben Sie keine Möglichkeit, sie zu erfassen und sie in Ihrem Array zu setzen. Nun, ok, Sie könnte in der Lage zu sein, indem Sie einige wichtige/hässliche Hack, der Griff der stdout Dateideskriptor ergreift und liest, was geschrieben wird, aber das wäre nur hässlich jenseits der Worte (und wahrscheinlich würde anders brauchen plattformspezifische Implementierungen). Geh einfach nicht dorthin.

Schreiben Sie Ihre eigene gute Funktion, um die Datei zu lesen und zurückgeben, was Sie brauchen oder die Mistfunktion, die Sie gegeben haben, zu beheben.

Es muss eine Grenze geben für wie viel Crud (mit dem Risiko der Einführung von mehr Mist/Bugs) muss man hinzufügen, um gebrochenen Mist-Code zu arbeiten, bevor es reparieren oder neu implementieren/neu Factoring.

+0

stimme völlig zu. Ich würde es als eine lustige Herausforderung betrachten, es irgendwie funktionieren zu lassen, aber in jedem ernsthaften Code würde ich diese Funktion einfach in den Müll werfen. – user463035818

Verwandte Themen