我是新來的函數,並試圖獲得返回值的掛起。更改返回值
我做了一個打印文本的函數,但我希望它根據實際函數中發生的情況返回一個值。
這是一個例子:
int function(char a)
{
int b = 0;
if(a == 'a')
{
b++;
}
cout << "Example";
if(b == 1){
return 1;
}
else
{
return 0;
}
}
然而,在這種情況下,返回值將被「卡住」設置爲0,並不會更改爲1。有沒有一種方法,使返回值的可靠在函數中發生了什麼?或者這不是它應該如何完成的?
編輯:這是我正在處理的代碼。基本上這是瑞典語中的「Hang子手」遊戲。我想是的「wordCheck」函數返回一個值,如果所有的信中處處都(和單詞完成),但現在它只是返回0,即使「NC」是4
#include <iostream>
#include <string>
using namespace std;
int wordCheck(char word[4], int c)
{
int nC = 0, a;
if(c != 1)
{
for (int i = 0; i < 4; i++)
{
if (word[i] == NULL)
{
word[i] = '_';
}
else if (word[i] != '_')
{
nC++;
}
}
cout << "Ordet: "<< word[0] << " " << word[1] << " " << word[2] << " " << word[3] << endl << endl;
}
if(nC == 4){
return 1;
}
else
{
return 0;
}
}
int main()
{
setlocale(LC_ALL,"");
char guess = 'l', word[50] = "bajs", letter[4] = {NULL, NULL, NULL, NULL}, null[4] = {NULL, NULL, NULL, NULL};
int i = 0, d = wordCheck(null, 1);
do
{
i++;
system("cls");
cout << "**********HÄNGA GUBBE**********" << endl;
cout << "*******************************" << endl;
cout << "*********GISSA PÅ ORDET********" << endl;
cout << "-------------------------------" << endl << endl;
wordCheck(letter, 0);
cout << "Gissning " << i << " : ";
cout << d;
cin >> guess;
if (guess == word[0])
{
letter[0] = 'B';
}
else if (guess == word[1])
{
letter[1] = 'a';
}
else if(guess == word[2])
{
letter[2] = 'j';
}
else if (guess == word[3])
{
letter[3] = 's';
}
} while (wordCheck(null, 1) != 1);
system("pause");
return 0;
}
(COUT < < d僅僅是用於調試的返回值,還考慮到裸露的代碼不被拋光,這是一項正在進行的工作)
@dasblinkenlight我不好,我編輯了這篇文章。這是一個錯字。 – user2166357 2014-12-03 20:14:59
你想做什麼? – user3344003 2014-12-03 20:21:23
它如何「卡住」?你嘗試過'function('a')'嗎? – crashmstr 2014-12-03 20:22:43