2012-04-04 61 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; 
} 

這將返回我的錯誤標題:Erorr:沒有運營商 「>>」 匹配這些參數

std::cin >> &NamePointer; 

任何想法?這可能是我錯過的簡單東西,但是當我查閱它時,我沒有得到我的答案。

JUST FIXED IT,SORRY FOR BOTHERING!我拿出「& NamePointer」中的「&」。

是的,我剛剛發現了另一種使用c_str()的方法。抱歉!

+0

只是刪除'&'並沒有解決它,它仍然是broken.Check我的答案。 – 2012-04-04 03:30:50

回答

3

你應該有:

std::cin >> NamePointer; 

而且,你只是分配一個字的記憶,也許你的意思是:

char* NamePointer = new char[MAX_SIZE]; 

和dellocate它:

delete []NamePointer; 

請注意,這樣做的C++方法是簡單地使用std::string來解決問題的緩衝區溢出你使用char*

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

沒有必要在這裏運營商的地址。簡單地說:

std::cin >> NamePointer; 

一些其他的事情,我注意到:

char* NamePointer = new char; 

你可能需要的不僅僅是一個字符更多的空間。一個簡單的開始可能是一個大的靜態分配:

char NamePointer[1024]; 

在這種情況下,你忽略末尾的delete聲明(這也不會使用運營商的地址的方式)。