2012-04-04 8 views
-1
int main() 
{ 
char* NamePointer = new char; 


std::cout << "Enter the file you want to edit (MUST BE IN THE PROJECT'S DIRECTORY): "; 
std::cin >> &NamePointer; 

const char* FileName = NamePointer; 
delete &NamePointer; 


return 0; 
} 

Das gibt mir den Fehler im Titel:erorr: kein Operator ">>" passt diese Argumente

std::cin >> &NamePointer; 

Irgendwelche Ideen? Dies ist wahrscheinlich etwas einfaches, das ich vermisse, aber als ich es nachgeschlagen habe, habe ich meine Antwort nicht bekommen.

GERADE FIXED IT, Sorry für BOTHERING! Ich nahm die "&" in "& NamePointer" heraus.

Ja, ich habe gerade einen anderen Weg gefunden, dies mit c_str() zu tun. Es tut uns leid!

+0

Nur das Entfernen der '&' hat es nicht behoben, es ist immer noch kaputt. Überprüfen Sie meine Antwort. –

Antwort

3

sollten Sie haben:

std::cin >> NamePointer; 

Auch Sie sind die Zuweisung nur einen Speicher von einem Zeichen, wahrscheinlich Sie gemeint:

char* NamePointer = new char[MAX_SIZE]; 

und dellocate es als:

delete []NamePointer; 

Beachten Sie, dass die C++ - Methode dazu dient, einfach std::string zu verwenden, die sich um das Problem kümmert Pufferüberlauf kommen Sie mit char* mit:

std::string Name; 
std::cin >> Name; 
0

Es für die Adresse Betreiber hier nicht notwendig ist. Einfach gesagt:

std::cin >> NamePointer; 

Einige andere Dinge, die ich bemerkt habe:

char* NamePointer = new char; 

Sie wollen wahrscheinlich mehr Platz als nur ein Zeichen. Ein einfacher Start kann eine große statische Zuordnung sein:

char NamePointer[1024]; 

In diesem Fall Sie auslassen die delete Anweisung am Ende (die auch keine Adresse Operator nicht verwendet, übrigens).