对不起,如果这真是微不足道的话,我只是因为被困在第一步而感到厌倦而需要继续,而我在其他任何地方都没有任何帮助。我不能为我的生活得到这个功能与我合作。这是来源:
#include <iostream>
using namespace std;
void ReadDials(){
};
void ToDigit(char *x){
if (*x = 'a'){*x = '54';}
else if (*x = 'A'){*x = 2;}
else if (*x = 'b'){*x = 3;}
else(*x = 4);
};
int main()
{
char one;
char two;
char three;
cin >> one;
ToDigit(&one);
cout << "one is: " << one << endl;
system("PAUSE");
}
我尝试过:在实际数字2和2的ascii指针之间交替,我相信是&#39; 32&#39;我已经使用==
来尝试,我已经做了我能想到的一切,我知道我已经在思考了。重点是让该功能将用户输入转换为电话拨号器的号码。
问题的范围从不与if语句同步的数字,以及看到&#39;:D&#39;面对控制台。这让我非常生气。
如果我需要让自己更清楚,我也会非常高兴。
提前感谢您的任何帮助。
答案 0 :(得分:2)
在if (*x = 'a')
中,=
是一项任务。您需要==
进行比较。此外,&#39; 54&#39;不是一个字符值。
void ToDigit(char *x){
if (*x == 'a') { *x = '54'; } /* what is this supposed to do? */
else if (*x == 'A') {*x = 2; }
else if (*x == 'b') {*x = 3; }
else { *x = 4 };
};
看起来您正在尝试使用x
作为输入和输出。让我们退后一分钟。让我们编写一个函数,它只需要一个char
和返回一个整数。这将是获取char
并从中获取数字的规范方式。
int ToDigit(char x){
if (x == 'a') { return 54; }
if (x == 'A') { return 2; }
if (x == 'b') { return 3; }
return 4 ;
};
要使用此功能形式,您可以在这种情况下将返回值分配给int
类型的变量。
char my_input;
int mapped_number;
std::cin >> my_input;
mapped_number = ToDigit(my_input);
std::cout << my_input << " maps to " << mapped_number << ".\n";