Ich bin neu bei Zeigern und habe die Aufgabe, ein 2D-Array aus einer Datei zu lesen. Ich muss die Funktion verwenden, die einen Parameter (char * path) aufnimmt. Wie Sie sehen können, tippe ich manuell ein, welche Textdatei ich im Code öffnen möchte, aber ich denke, ich muss Zeiger verwenden, da es sich um den Parameter in handelt meine 'read_from_file'-Funktion. Ich nehme Benutzereingaben an der Befehlszeile an, um zu sehen, aus welcher Datei sie mit dem folgenden Code lesen möchten. Ich bin mir nicht sicher, wie ich char* argv[] als Parameter verwenden soll, der an meine read_from_file(char *path) weitergegeben wird, damit ich aus der vom Benutzer angegebenen Datei lesen kann. Mein Code zum Lesen aus einer Datei funktioniert völlig einwandfrei, aber ich möchte nur etwas Hilfe mit den Zeigern.
int main(int argc, char* argv[]){
int read_from_file(char *path){
ifstream infile("file.txt");
string line;
std::vector<std::vector<int> > num;
std::string line;
while (std::getline(infile, line))
{
std::vector<int> values;
std::istringstream iss(line);
int value;
while (iss >> value)
{
values.push_back(value);
}
num.push_back(values);
}
}
Wenn Sie nichts Besonderes wollen:
// Note: argv[0] is the name of the program itself, 1..n are actual arguments
for (int i = 1; i < argc; ++i) {
read_from_file(argv[i]);
}
Dann kannst du das in deiner Funktion verwenden:
std::ifstream infile(path);
Normalerweise sollten Sie in C++ solche Argumente als const char*
.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen