2016-03-04 5 views
-5

Есть ли способ сделать что-то вроде этого:Просить полукокс *

void test(char *userInput){ 
    //code 
} 
char userInput = "test"; 
test(userInput); 

У меня есть ошибка: Process finished with exit code 139 так, как я могу продолжить?

+2

'char userInput =" test ";' это, вероятно, не то, что вы хотели написать. Рассмотрим 'char userInput [] =" test ";' –

+1

Просьба предоставить минимальный, полный, проверяемый пример (http://stackoverflow.com/help/mcve). – skyking

+2

Предпочитает 'std :: string' над' char * '. –

ответ

3

Есть ли способ сделать что-то вроде этого:

Конечно, просто изменить свой код немного:

void test(const char *userInput){ 
    //code 
} 

int main() { 
    const char* userInput = "test"; 

    test(userInput); 
} 

У меня есть ошибка: Process finished with exit code 139 так как я могу продолжить?

Я уверен, что компилятор действительно показал вам further errors, прежде чем этот подошел. Исправьте их в первую очередь.

1

Вы отметили это как вопрос на C++ ... std :: strings очень просты в использовании.

// NOTE: userinput can be either std::string OR const char* 
void test(std::string userinput) 
{ 
    // code, perhaps echo testing input 
    std::cout << userinput << std::endl; 
} 

// test 290 - invoked somewhere in main 
int t290(void) 
{ 
    std::string userInput = "test1"; 
    test(userInput); 

    // some times you can save some typing 
    test("test2");  // function declared as above 
         // accepts both const char* or std::string 

    return (0); 
} 
0

Как и другие люди указали, что есть ошибка в вашем коде, char должен быть изменен на const char*. Char имеет только одно значение, а не всю строку, и если ваша функция принимает значение const, она также должна быть. Кроме того, учитывая, что вы используете C++, вы можете использовать std::string, который очень прост в использовании.

Смежные вопросы