@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.

Посмотрите код, как правильно его переделать?

Всем привет! Я хочу сделать отслеживание клавиш в своей программе, вот почти готовый код:
#ifdef defined(_WIN32) || defined(_WIN64)
	#include <conio.h>
	void clear() {
		printf("\033[2J");
        printf("\033[0;0f");
	}
	#define WINDOWS
#elif defined(unix)
	char getch() {
		char ch;
		system("stty raw");
		ch = getchar();
		system("stty cooked");
		return ch;
	}
	void clear() {
		system("clear");
	}
	#define UNIX
#endif

enum { FALSE, TRUE };

int main() {
	clear();
	FILE *logs = fopen("logs.txt", "r");
	if (logs != NULL) {
		while(TRUE)
			char s = getch();         // Problemmmmmmmmmmmm
			fprintf(logs, "%s\n", s); // Problemmmmmmmmmmmmmmm
	}
	else {
		printf("Error!");
	}
	fclose(logs);
	return 0;
}

Но у меня, как всегда, возникла тупая проблема... Мне нужно функцию getchar() записать в файл. Но т.к я хочу сделать свою программу кроссплатформенной, то собственно на Windows эту функцию изменить не получится, а на Linux, как видите, я её сделал сам.
Вкратце: как мне считать ОДИН СИМВОЛ и сразу же записать его в файл? При этом нужно что бы работало как и на Windows так и на Linux
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы