2016-10-29 2 views
2

C++ 함수에서 입력을 받아 주 함수 으로 반환하려면 이미 시도했지만 함수는 0을 반환합니다.C++ 함수의 입력을 main 함수에 전달하는 방법

#include<iostream> 
using namespace std; 
int input(int x); 
int main() 
{ 
    int number; 
    input(number); 
    cout<<number; 

} 
int input (int x) 
{ 
    cin>>x; 
    return x; 
} 
+0

C++가 패스를 사용하여 여기에

#include<iostream> using namespace std; int input(); int main() { int number = input(); // Takes what the return statement gives cout<<number; } int input() { int x; cin>>x; return x; } 

것은 ++의 참조 C를 사용하여 다른 방법 가치 시스템. 여러분이 원하는 변수에 cin이 쓰기를 원한다면, 변수에 대한 참조를 전달하도록 컴파일러에게 알려주는'int input (int & x)'를 선언해야합니다. –

답변

1

당신은 그것을 참조로 x을 당신은 확인하기 위해 기능을 변경할 수 있습니다

int main() 
{ 
    int number; 
    number = input(); 
    cout<<number; 
} 

int input() 
{ 
    cin>>x; 
    return x; 
} 
+0

, 감사합니다! –

+0

@ M-AmrMoussa 당신을 환영합니다! – HazemGomaa

0

반환 값을 참조

void input (int & x) 
{ 
    cin>>x; 
} 

에 의해 전달하거나 사용할 필요가 :

void input (int& x) 
{ 
    cin>>x; 
} 

이렇게하면됩니다. 함수는 참조로 전달 될 때 값을 업데이트하므로 x를 반환 할 필요조차 없습니다.

+0

작동합니다! , 고마워 친구 –

0

자, 시작 부분에서 그것을 얻을 수 있습니다 :
그것은 어떤 기능을 사용하면 포인터 또는 참조 사용하지 않는 한, 모든 변수는

그래서 무슨 일이 (C 만 ++) 일시적으로이 기능의 범위에서만 액세스 할 수 있습니다 함수를 호출하면 number의 사본이 x에 생성됩니다.

또한 함수의 return 문은 ... 값을 반환하는 데 사용됩니다. 응, 그거야?

그래서 실제로 당신도 당신의 기능에 어떤 매개 변수를 보내고 다만 그 결과를 취할 필요가 없습니다 :

#include<iostream> 
using namespace std; 
void input(int& x); 
int main() 
{ 
    int number; 
    input(number); 
    cout<<number; 

} 
int input (int& x)//Takes number's address 
{ 
    cin>>x; 
} 
관련 문제