这是一个非常简单的问题,但我完全糊涂了。我想在我的控制台应用程序中打印函数的输出。我的职责是:
void Func(char * x)
我将其称为:
char a;
Func(& a);
现在我想在VS2010的控制台应用程序中打印我的字符串(a)。我该怎么办?
答案 0 :(得分:1)
std::cout << a << std::endl;
或者如果使用C - :
printf("%c\n", a);
答案 1 :(得分:1)
首先,你传递给函数的不是字符串,而只是指向单个字符的指针。
你问打印那个角色应该怎么做。
从技术上讲,它就像这样简单:#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 );
}
如果,第三方面,这个想法确实是传递一个字符串,那么使用std::string
- 然后我们就会陷入不太可能的可能性,其中存在丰富,太多无法覆盖在这个答案中