-3

这是一个非常简单的问题,但我完全糊涂了。我想在我的控制台应用程序中打印一个函数的输出。我的功能是:

   void Func(char * x)

我称之为:

char a;
Func(& a);

现在我想在 VS2010 的控制台应用程序中打印我的字符串 (a)。我该怎么办?

4

2 回答 2

1
std::cout << a << std::endl;

或者如果使用 C-:

printf("%c\n", a);
于 2013-02-23T11:48:49.210 回答
1

首先,您传递给函数的不是string,而只是指向单个字符的指针。

你问你应该怎么做才能打印那个字符。

从技术上讲,它就像这样简单:

#include <iostream>

void Func( char* x )
{
    std::cout << *x << std::endl;
}

int main()
{
    char a = 'G';
    Func( &a );
}

但是虽然这在技术上是可行的,但可以说,有很多东西会从厕所里跳出来,在一个更大的程序中咬你……

所以让我们从函数签名开始:它的参数和结果。如果要点是函数应该为用作实际参数的变量提供值,那么选择函数结果而不是指针参数。然后不要在函数中执行任何 i/o,因为那样会限制它的实用性,它可以用于:

#include <iostream>

char Func()
{
    return 'A';
}

int main()
{
    char const a = Func();
    std::cout << a << std::endl;
}

另一方面,如果关键在于函数应该显示(或使用)字符值,则按值传递它,如下所示:

#include <iostream>

void Func( char const x )
{
    std::cout << x << std::endl;
}

int main()
{
    char const a = 'N';
    Func( a );
}

另一方面,如果这个想法确实是传递一个字符串,那么使用 a std::string– 但是我们会进入不太可能的可能性,其中有很多,在这个答案中无法涵盖

于 2013-02-23T12:33:18.340 回答