[英]comparing characters in c++
如果我運行程序,則不會將在“ Bitte Funktion waehlen”之后輸入的值與sin
, cos
或tan
。 相反,它總是直接跳轉到else
語句。
#include <iostream>
#include <string>
using namespace::std;
int funktions_wahl(char funktion, int genauigkeit)
{
char sin;
char cos;
char tan;
int x;
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit; //Wie sin als fkt hier benutzen? 2x vorübergehend.
}
else if (funktion==cos) {
cout << "cos von " << x << " =" << 4*x*genauigkeit; //Gleiches Spiel wie oben.
}
else if (funktion==tan) {
cout << "tan von " << x << " =" << 8*x*genauigkeit; //Gleiches Spiel wie oben;
}
else {
cout << "Keine gültige Variable eingegeben\r";
}
return 0;
}
int main() {
char f;
int g=0;
cout << "Taschenrechner 1.0\r" << "Bitte Funktion eingeben: ";
cin >> f;
cout << "Genauigkeit wählen: ";
cin >> g;
funktions_wahl(f, g);
}
我不明白為什么。 有人對我有建議嗎?
char sin;
char cos;
char tan;
int x;
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit;
您忘記初始化sin
, cos
, tan
和x
,因此正在讀取未初始化的內存。
您可能打算使用char sin = 's';
等等。
問題是您沒有初始化變量sin
, cos
和tan
(實際上應該是常量),這導致未定義的行為:
cout << "Keine gültige Variable eingegeben\\r";
)。 若要更正此問題,您應該改為按以下方式定義和初始化這些常量:
const char sin = 's';
const char cos = 'c';
const char tan = 't';
更新
要回答更新的問題(如何使用“ sin”而不是“ s”),您只需要將變量的類型從char
更改為string
,並將文字從char文字(單引號之間)更改為字符串文字(在雙引號之間),如下所示:
string f;
...
const string sin = "sin";
const string cos = "cos";
const string tan = "tan";
感謝您的回答。
我按照您的建議進行了更改。 但是,仍然有可能輸入eG sin而不是s嗎?
#include <iostream>
#include <string>
using namespace::std;
int funktions_wahl(char funktion, int genauigkeit, int x)
{
char sin='s';
char cos='c';
char tan='t';
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit << "\r"; //Wie sin als fkt hier benutzen? 2x vorübergehend.
}
else if (funktion==cos) {
cout << "cos von " << x << " =" << 4*x*genauigkeit << "\r"; //Gleiches Spiel wie oben.
}
else if (funktion==tan) {
cout << "tan von " << x << " =" << 8*x*genauigkeit << "\r"; //Gleiches Spiel wie oben;
}
else {
cout << "Keine gültige Variable eingegeben\r";
}
return 0;
}
int main() {
char f;
int g=0;
int x=0;
cout << "Taschenrechner 1.0\r" << "Bitte Funktion eingeben: ";
cin >> f;
cout << "Genauigkeit wählen: ";
cin >> g;
cout << "x wählen: ";
cin >> x;
funktions_wahl(f, g, x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.