Tag: console

基于Windows set locale和consoleCP调试代码并使其运行。 获取错误:’未定义引用`GetLocaleInfoEx”

我试图让另一个人制作一些代码来工作。 代码基本上获取用户在var locale_name引入的语言环境。 然后设置其ConsoleCP和ConsoleOutputCP ; 毕竟,将控制台重置为默认值。 我做了一些修改,但我已经陷入黑点,我不知道如何继续。 我收到两个错误: undefined reference to ‘GetLocaleInfoEx’和error: ‘reset_console’ undeclared (first use in this function) 。 我不知道为什么我得到第一个错误。 第二个错误是由于未定义reset_console 。 我想它应该重置控制台的默认配置,但我不知道它应该为它做什么(我的意思是,我不知道如何恢复设置,我一直在搜索,但我没有做任何事情)。 代码是: #include #include #include #include #include #include #include int main() { wchar_t *locale_name = L”es-ES”; if (_wsetlocale(LC_ALL, locale_name)) { int codepage; int gPrevConsoleCP = GetConsoleCP(); if (gPrevConsoleCP) { // The process […]

使用getc从控制台读取\ r(回车)vs \ n(换行符)?

我正在写一个基本上等待用户点击“输入”然后做某事的function。 我发现在测试时有效的方法如下: #include int main() { int x = getc(stdin); if (x == ‘\n’) { printf(“carriage return”); printf(“\n”); } else { printf(“missed it”); printf(“\n”); } } 我的问题,以及我最初尝试的是: if (x == ‘\r’)但是在测试中,程序没有抓住我进入。 ‘\n’似乎对应于我从控制台点击进入。 有人可以解释这个区别吗? 另外,要进行validation,将其写为if… == “\n”将表示字符串文字? 即用户真的必须从控制台输入”\n” ,对吗?

Linux终端中的游戏:更改图像:打印已打印的文本

好吧,我只是在linux终端中实现非常简单的纸牌游戏。 我想要实现的是改变图像的效果,基本上是对已经打印的文本进行打印(我想我不能做,除了用\ r \ n重印相同的行)。 我想要做的是获得终端高度,然后打印换行符直到终端的下边缘,然后将光标定位在终端,以便打印的最后一行将在顶部。 有没有很好的方法来做到这一点? 我刚刚找到了名为Ncurses的库。 似乎它可以做到这一点。 这是一个不错的选择吗?

如何让用户选择OpenCV的video录制设备(网络摄像头)?

所以我需要的是捕获设备列表。 还有一些function可以从用户那里获得他想要传输的设备。 如何在win32 C ++控制台应用程序中使用openCV做这样的事情?

stdin中的文件结束

关于这个的问题已经在C中被问到文件结束(EOF),但它仍然没有完全解决我的问题。 在任何不是stdin数据流中, EOF对我有意义,例如,如果我有一些data.txt文件, fgetc()将读取所有字符并到达文件末尾并返回-1 。 我不明白的是stdin中EOF的概念。 如果我使用getchar() ,它将等待我输入内容,所以如果没有写入,文件结束,( EOF )不会自动返回? 那么只有用户可以通过按Ctrl + Z在stdin调用EOF吗? 如果是这样,那么在stdin中EOF一些用途是什么? 我猜它会告诉程序继续读取,直到用户调用文件结尾? 是这个吗? 谢谢

Linux的kbhit()问题

while(ch != ‘q’) { printf(“looping\n”); sleep(1); if(kbhit()) { ch = readch(); printf(“you hit %c\n”,ch); } } 这段代码给了我一个阻塞getch()之类的function。 我试图使用此代码捕获向下箭头键。 补充:尝试捕获向上箭头的关键代码给我3个字符27,91和65.使用if / else我正在尝试模式匹配,但我只得到2个字符。 按下下一个键时捕获下一个。 我想使用getchar()捕获完整的单词,同时总是一直在寻找某些键(esc,del等)。

简单的C scanf不起作用?

如果我尝试以下内容: int anint; char achar; printf(“\nEnter any integer:”); scanf(“%d”, &anint); printf(“\nEnter any character:”); scanf(“%c”, &achar); printf(“\nHello\n”); printf(“\nThe integer entered is %d\n”, anint); printf(“\nThe char entered is %c\n”, achar); 它允许输入一个整数,然后完全跳过第二个scanf ,这真的很奇怪,因为当我交换两个(首先是char scanf)时,它工作正常。 究竟是什么错了?