2013-02-23 7 views
-3

Это действительно простой вопрос, но я полностью смущен. Я хочу напечатать вывод функции в моем консольном приложении. Моя функция:print char для консольного приложения

void Func(char * x) 

и я называю это так:

char a; 
Func(& a); 

Теперь я хочу, чтобы напечатать мою строку символов (а) в консольном приложении в VS2010. Что мне делать?

+0

Можете ли вы опубликовать свой код Func? – billz

+8

'a' не является символьной строкой. Это всего лишь один персонаж. –

+0

Вы хотите напечатать внутри функции ('x') или вне функции (' a')? – pmg

ответ

1

в первую очередь, то, что вы передаете функции не строка, а лишь указатель на один символ.

Вы спрашиваете, что вы должны сделать, чтобы напечатать этот символ.

технически, это так же просто, как это:

#include <iostream> 

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

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

, но в то время как это работает технически, там ’ s много, что будет, так сказать, вскочить из туалета и укусить в более крупной программе & hellip;

so let ’ s начинаются с подпись функции: ее аргументы и результат. если точка заключается в том, что функция должна предоставить значение для переменной, используемой как фактический аргумент, а затем выбрать результат функции, а не аргумент указателя. а затем дон ’ т делать любой 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 –, но затем у нас есть менее вероятные возможности, из которых есть изобилие, слишком много для покрытия в этом ответе

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

или при использовании C-:

printf("%c\n", a); 
+0

Это 'C-' из-за того, что он не является 'C++' ? – Noxbru