problem bei der konvertierung von pascal nach c++
-
folgendes problem hab ich beim umsetzen von code
in pascal ist folgendes möglichprocedure test(const data :array of string)
var
i : integer;
begin
for i:=LOW(data) to HIGH(data) do
begin
machwasmit(data[i]);
end;
end;jetzt das wichtige ...es ist ein aufruf möglich wie
test(['str1','str2','str3','str4','str5']);das gleich brauch ich in cpp
mit QString von Qt ...aber das ist nur ein Bsp:
void test(QString data[]){
for(int i=0;i<sizeof(data);i++){
machwasmit(data[i]);
}
}wichtig ist ein aufruf dann in etwa wie
test(("str1","str2","str3"));warum geht das nicht ...den aufruf kann der compiler schonmal leiden ...aber dann versinkt er gnadenlos

Wer kann mir helfen ...wie geht dasWenn ich das array vorher zusammenbaue ...ist das kein thema ...
ich brauch aber obige form des aufrufs ...oder so ähnlich ...
-
Ich versteh' dich nicht ganz:
Schreibst du deine machwasmit selbst?
Soll es möglich sein, beliebig viele strings als Parameter anzugeben?
Oder willst du einen zusammengestückelten String übergeben?Greetz, Swordfish
-
die "machwasmit()" schreib ich selbst ...
es geht im prinzip darum ein offenes array von strings beim aufruf der funktion
in den funktionkopf zu schreiben ...also keine variable erst zu erzeugenvoid test(QString arg[]){ // hier will ich x strings in dem array bearbeiten }und wichtig ist die form des aufrufs ...
test( ("string 1","string 2"," eventuell auch mehr strings") );
-
mit dem aufruf wird das so nichts.
du könntest aber nen std::vectorstd::string oder ähnliches übergeben.
vielleicht sind auch noch die funktionen std::generate() oder std::for_each() hilfreich
mfg.
-
Cpt. Tanga schrieb:
mit dem aufruf wird das so nichts.
du könntest aber nen std::vectorstd::string oder ähnliches übergeben.
vielleicht sind auch noch die funktionen std::generate() oder std::for_each() hilfreich
mfg.kann mir da jemand mit einem mini bsp auf die sprünge helfen?
-
Hallo,
Der Begriff Konvertierung bezeichnet in der Informatik die Überführung einer Datei von einem Dateiformat in ein anderes.
Das heißt man konvertiert nicht von Pascal nach C[++]. Man schreibt um oder übersetzt.
Übersetzen != Konvertieren
MFG winexec*
-
winexec* schrieb:
Hallo,
Der Begriff Konvertierung bezeichnet in der Informatik die Überführung einer Datei von einem Dateiformat in ein anderes.
Das heißt man konvertiert nicht von Pascal nach C[++]. Man schreibt um oder übersetzt.
Übersetzen != Konvertieren
MFG winexec*
Na Du bist ja toll
danke für die sehr intelligente Antwort auf oben gestellte frage;-)
In diesem Zusammenhang steht ganz oben in meiner Frage:folgendes problem hab ich beim umsetzen von code
in pascal ist folgendes möglichEin konstruktiver Beitrag wäre mir persönlich lieber gewesen ...oder habe ich hier eine Frage welche "kein" Programmierer sauber beantworten kann?

-
#include <iostream> #include <string> #include <vector> using namespace std; void mach_was(vector<string> str) { for(unsigned int i = 0; i < str.size(); ++i) { cout << str.at(i) << endl; } } int main(int argc, char **argv) { vector<string> s; s.push_back("hello"); s.push_back("world"); s.push_back("!"); mach_was(s); return 0; }
-
xxxblubxxx schrieb:
#include <iostream> #include <string> #include <vector> using namespace std; void mach_was(vector<string> str) { for(unsigned int i = 0; i < str.size(); ++i) { cout << str.at(i) << endl; } } int main(int argc, char **argv) { vector<string> s; s.push_back("hello"); s.push_back("world"); s.push_back("!"); mach_was(s); return 0; }vielen dank ...allerdings ist diese lösung nicht die gesuchte. siehe oben

ich suche einen funktionsaufruf der in etwa so ausschaut
mach_was(("hello","world","!"))
-
Hallo,
Ich glaube niemand versteht so richtig was du meinst: http://www.lugbz.org/documents/smart-questions_de.html
Meinst du vielleicht so erwas?
void mach_was(string a, string b, string c){ string h[3] = { a,b,c }; for(unsigned int i = 0; i < 3; ++i){ cout << h[i] << endl; } } int main(int argc, char **argv){ mach_was("hallo","welt","!"); return 0; }MFG winexec*
-
Ich denke er will wissen wie man eine Funktion erstellt, die eine variable Anzahl an Parametern haben kann.
So ähnlich wie bei printf. Da können ja auch eine unterschiedliche Anzahl an Parametern angegeben werden.
-
Nachdem er uns immer noch nicht gesagt hat, was er will...
#include <string> #include <vector> #include <iostream> #include <cstdarg> using namespace std; void foo( int parmN, ... ); int main( ) { foo( 1, "one" ); foo( 3, "one", "two", "three" ); foo( 5, "one", "two", "three", "four", "five" ); } void foo( int parmN, ... ) { va_list ap; va_start( ap, parmN ); vector< string > array; for( int i = 0; i < parmN; ++i ) { array.push_back( va_arg( ap, char* ) ); } va_end( ap ); for( int i = 0; i < array.size( ); ++i ) { cout << array[ i ] << endl; } cout << endl; }Greetz, Swordfish