-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