C++字符返回输出符号

C++ char return outputting symbols

本文关键字:符号 输出 返回 字符 C++      更新时间:2023-10-16

我正在努力从函数返回一个字符。当我在屏幕上看到这些奇怪的符号时,一切正常。

#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实际上并没有复制字符串,它只是分配outStr参数变量以指向testfunc()FirstName数组的第一个元素;main()中的FirstName数组不会被修改。

要么使用 strcpy() 复制字符串,要么(更好的是)使用 std::string 而不是字符数组。