-1
我正在从函数返回一个字符。当我在屏幕上看到这些奇怪的符号时,一切正常。C++ char返回输出符号
#include <iostream>
void testfunc(char* outStr);
int main()
{
char FirstName[10];
testfunc(FirstName);
std::cout << "So far so good.";
std::cout << std::endl;
std::cout << FirstName;
std::cout << std::endl;
std::cout << "It worked!";
std::cout << std::endl;
system("pause");
return 0;
}
void testfunc(char* outStr)
{
char FirstName[10];
std::cin >> FirstName;
outStr = FirstName;
}
我有一个问题的图片,但似乎我不能发表任何。输出看起来像随机数字和符号。这不是一个地址。它确实编译并通过程序运行良好。 Cout在FirstName之前和之后,所有输出都很好。然而,名字本身输出符号和块。
'outStr = FirstName'只复制方向。使用'strcpy(outStr,FirstName)'。或者更好的是,使用'std :: string' – Noel 2014-12-01 19:51:13
我不认为这是这个特定问题的重复;有问题的一行是'outStr = FirstName',这似乎是试图拷贝数组内容。 – cdhowie 2014-12-01 19:51:19
1.函数返回后,'testfunc()中的'FirstName'数组无效。 2.'outStr = FirstName;'实际上没有用,它不会改变'main()'中声明的'char FirstName [10]'(提示,请尝试'strncpy()'而不是'='! – 2014-12-01 19:53:06