2016-07-14 8 views
-3

Ich habe Probleme mit einem Pufferüberlauf mit dem Befehl char in C++, da ich neu in C++ - Codierung bin. Hier ist mein Code. Mein Problem ist in der siebten Zeile.C++ übergelaufener Puffer

#include "stdafx.h" 
#include <iostream> 
#include <cstdlib> 
int main() 
{ 
    char word[90]; 
    std::cout << "Type in your name to find out your gangster name!" << std::endl; 
    std::cin >> word; 
    std::cout << "Your gangster name is..." << std::endl; 
    std::cout << "Da" << word << std::endl; 
    system("pause"); 
} 

Wie kann ich zulassen, dass die Variable aus einer unbegrenzten Anzahl von Buchstaben besteht?

+2

Warum ändern nicht 'char word [90]' auf 'std :: string word' –

+0

' char' ist kein " Befehl". –

Antwort

3

Sie sollten std::string und std::getline in diesem Fall benutzen

std::string word; 
std::getline(std::cin, word); 

http://www.cplusplus.com/reference/string/string/getline/

+0

Ah, diese Lösung hat für mich funktioniert. –

+0

Warum benutzen Leute überhaupt Charwort? Es scheint unsicher zu sein. –

+1

@AlexSummers: Sie nicht. Es ist. –