やりたいこと
strcmpを用いて入力された文字に応じて正しい処理を行う
表示されているエラーコード
cannot convert 'std::istream' {aka 'std::basic_istream<char>'} to 'const char*'
strcmp関数用いている個所にこのエラー文が出ています。
c++でstrcmpを用いるときはcstringをincludeすればよいと書いていたのでそうしたのですがエラーが出てしまいました。
よろしくお願いします。
// ヘッダファイルなどを記述 #include <cstring> #include <iostream> using namespace std; // クラスの定義 class Coordinate { // 座標を扱うクラス // write here... private: int x; int y; public: Coordinate(int _x, int _y){ x=_x; y=_y; } void show(){ cout << "The current potision is (" << x << "," << y << ")" << endl; } void right(){ x++; cout << "Moved to right" << endl; } void left(){ x--; cout << "Moved to left" << endl; } void up(){ y++; cout << "Moved up" << endl; } void down(){ y--; cout << "Moved down" << endl; } }; int main() { // write here... string operation; Coordinate tenP(0,0); char str1[] = "show"; char str2[] = "right"; char str3[] = "left"; char str4[] = "up"; char str5[] = "down"; char str6[] = "quit"; while(1){ cout << "Enter a command (up, down, left, right, show or quit):"; cin >> operation; if(strcmp(str1,cin) == 0){ tenP.show(); } else if(strcmp(str2,cin) == 0){ tenP.right(); } else if(strcmp(str3,cin) == 0){ tenP.left(); } else if(strcmp(str4,cin) == 0){ tenP.up(); } else if(strcmp(str5,cin) == 0){ tenP.down(); } else if(strcmp(str6,cin) == 0){ return 0; } else{ cout << "Invalid command" << endl; } } return 0; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/22 01:21