私は楽しみのために C++ で小さなテキスト エディターを作成していましたが、コードは少し遅くなりましたが、エディターに何かを貼り付けようとしたときに問題が発生しました。ctrl+v を入力すると、コピーされたテキスト (Web リンク) が貼り付けられる代わりに、次のように表示されました: ▬. これは、最初にctrl + cまたはctrl + s、またはctrlを含む任意の文字を実際に押したときに発生しました。なぜこれが起こるのですか?これを止める方法はありますか?
int editTxtFile() {
std::string txtstr;
std::string filename;
std::cin >> filename;
std::ofstream file("TXTFILES\\"+filename+".txt", std::ios::out);
std::cout << "This is an editor for txt files (sorry for the flashing!)\n";
char keypressed;
int asciiVal;
if (file.is_open()) {
while (true) {
keypressed = getch();
asciiVal = keypressed;
switch (asciiVal) {
case 13:
txtstr += "\n";
system("cls");
break;
case 8:
txtstr = txtstr.substr(0, txtstr.size() - 1);
system("cls");
break;
case 94:
file << txtstr;
system("cls");
file.close();
break;
default:
txtstr += keypressed;
system("cls");
break;
}
std::cout << txtstr;
}
}
return 0;
}
getch() 関数にヘッダー ファイル conio.h を使用しています。この問題を解決するにはどうすればよいですか? 前もって感謝します。