Есть ли способ сделать что-то вроде этого:Просить полукокс *
void test(char *userInput){
//code
}
char userInput = "test";
test(userInput);
У меня есть ошибка: Process finished with exit code 139
так, как я могу продолжить?
Есть ли способ сделать что-то вроде этого:Просить полукокс *
void test(char *userInput){
//code
}
char userInput = "test";
test(userInput);
У меня есть ошибка: Process finished with exit code 139
так, как я могу продолжить?
Есть ли способ сделать что-то вроде этого:
Конечно, просто изменить свой код немного:
void test(const char *userInput){
//code
}
int main() {
const char* userInput = "test";
test(userInput);
}
У меня есть ошибка:
Process finished with exit code 139
так как я могу продолжить?
Я уверен, что компилятор действительно показал вам further errors, прежде чем этот подошел. Исправьте их в первую очередь.
Вы отметили это как вопрос на 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);
}
Как и другие люди указали, что есть ошибка в вашем коде, char
должен быть изменен на const char*
. Char имеет только одно значение, а не всю строку, и если ваша функция принимает значение const, она также должна быть. Кроме того, учитывая, что вы используете C++, вы можете использовать std::string
, который очень прост в использовании.
'char userInput =" test ";' это, вероятно, не то, что вы хотели написать. Рассмотрим 'char userInput [] =" test ";' –
Просьба предоставить минимальный, полный, проверяемый пример (http://stackoverflow.com/help/mcve). – skyking
Предпочитает 'std :: string' над' char * '. –