- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
// https://www.tutorialspoint.com/Read-a-character-from-standard-input-without-waiting-for-a-newline-in-Cplusplus
// A portable solution doesn't exist for doing this. On windows, you can use the getch() function from the conio(Console I/O) library to get characters pressed. For example,
#include<iostream>
#include<conio.h>
using namespace std;
int main() {
char c;
while(1){ // infinite loop
c = getch();
cout << c;
}
}
// This will output whatever character you input to the terminal. Note that this will only work on windows as the conio library exists only on windows. On UNIX, you can achieve this by entering in system raw mode. For example,
#include<iostream>
#include<stdio.h>
int main() {
char c;
// Set the terminal to raw mode
system("stty raw");
while(1) {
c = getchar();
// terminate when "." is pressed
if(c == '.') {
system("stty cooked");
exit(0);
}
std::cout << c << " was pressed."<< std::endl;
}
}
j123123 22.01.2019 07:35 # +4
bormand 22.01.2019 08:07 # +1
j123123 22.01.2019 08:49 # 0
Т.е. с отрубленной построчной буферизацией "std::cin >>" в винде не заюзать, я правильно понимаю?
bormand 22.01.2019 08:54 # +1
gost 22.01.2019 08:57 # 0
bormand 22.01.2019 08:59 # 0
j123123 22.01.2019 09:11 # 0
bormand 22.01.2019 11:16 # 0
guest8 22.01.2019 16:11 # −999
KaBauHblu_nemyx 22.01.2019 10:58 # +2
guest8 22.01.2019 16:12 # −999
j123123 22.01.2019 09:00 # +1
Например, https://ru.cppreference.com/w/c/thread
Или вот в новых стандартах крестов есть какая-то хренота для работы с файловой системой в стандартной библиотеке https://en.cppreference.com/w/cpp/filesystem
В общем это не аргумент.
bormand 22.01.2019 09:11 # +1
guest8 22.01.2019 09:19 # −999
gost 22.01.2019 10:50 # 0
guest8 22.01.2019 16:11 # −999
guest8 22.01.2019 17:01 # −999
bormand 22.01.2019 11:14 # +2
u3yMpygHblu_nemyx 23.01.2019 12:35 # 0
gost 22.01.2019 10:19 # +4
bormand 22.01.2019 09:16 # 0
bormand 22.01.2019 08:56 # 0
Х.з., может быть у венды тоже какой-то флажок есть. Гуглить надо.
gueest8 22.01.2019 14:58 # 0
HoBorogHuu_nemyx 22.01.2019 15:07 # 0
guest8 22.01.2019 16:01 # −999
j123123 22.01.2019 11:11 # +3
HoBorogHuu_nemyx 22.01.2019 11:40 # +1
bormand 22.01.2019 11:55 # 0
gueest8 22.01.2019 14:58 # 0
вообще странное желание конечно читать напрямую, когла есть readline и этот.. как его.. аналог не гнутый... забыл
HoBorogHuu_nemyx 22.01.2019 15:11 # 0
gueest8 22.01.2019 15:55 # +1
http://www.delorie.com/gnu/docs/readline/rlman_41.html
HoBorogHuu_nemyx 22.01.2019 16:00 # 0
Функция rl_callback_read_char читает символ, но нам его не возвращает. Она вызывает предварительно установленный нами обработчик, если заметила признак конца строки. Т. е. наш обработчик сможет прочитать только целиком строку, завершающуюся ентером.
guest8 22.01.2019 16:05 # −999
HoBorogHuu_nemyx 22.01.2019 16:15 # 0
В общем, можно текстовый «Тетрис» соорудить.
guest8 22.01.2019 16:21 # −999
guest8 22.01.2019 16:23 # −999
KaBauHblu_nemyx 22.01.2019 11:22 # 0
gueest8 22.01.2019 15:00 # 0
HoBorogHuu_nemyx 22.01.2019 15:21 # 0
http://rus-linux.net/MyLDP/BOOKS/programming-ground-up/02/groundup-ru-02-07-03.html
Как видим, всё очень просто.