从标准输入中捕获字符,而无需等待按下Enter给定JS对象var obj = { a: { b: '1', c: '2' } }`和一根绳子"a.b"如何将字符串转换为点表示法,这样我就可以var val = obj.a.b如果字符串只是‘a’,我可以用obj[a]但这更复杂。我想有一些直截了当的方法,但目前它逃脱了。
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
#include <unistd.h>#include <termios.h>char getch() { char buf = 0; struct termios old = {0}; if (tcgetattr(0, &old) < 0) perror("tcsetattr()"); old.c_lflag &= ~ICANON; old.c_lflag &= ~ECHO; old.c_cc[VMIN] = 1; old.c_cc[VTIME] = 0; if (tcsetattr(0, TCSANOW, &old) < 0) perror("tcsetattr ICANON"); if (read(0, &buf, 1) < 0) perror ("read()"); old.c_lflag |= ICANON; old.c_lflag |= ECHO; if (tcsetattr(0, TCSADRAIN, &old) < 0) perror ("tcsetattr ~ICANON"); return (buf);}
白猪掌柜的
TA贡献1893条经验 获得超10个赞
我对它做了一些修改。效果很好。我正在运行OSX,所以如果您运行的是Microsoft,那么您需要找到正确的system()命令才能切换到原始模式和熟模式。
#include <iostream> #include <stdio.h> using namespace std; int main() { // Output prompt cout << "Press any key to continue..." << endl; // Set terminal to raw mode system("stty raw"); // Wait for single character char input = getchar(); // Echo input: cout << "--" << input << "--"; // Reset terminal to normal "cooked" mode system("stty cooked"); // And we're out of here return 0; }
添加回答
举报
0/150
提交
取消