我正在尝试编写一个C++程序,当用户从键盘输入任何字符时,它应该移动到下一行代码.
这是我的代码:
char c;
cin>>c;
cout<<"Something"<<endl;
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为当我输入一些字符然后按ENTER键时它只会移动到下一行.
要么
如果我用这个
cin.get() or cin.get(c)
Run Code Online (Sandbox Code Playgroud)
按Enter键进入下一行指令.
但我希望它能够在键盘上按下的任何键上移动到下一行,如何做到这一点?
在下一个代码中:
#include <stdio.h>
int main(void) {
int c;
while ((c=getchar())!= EOF)
putchar(c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我必须按Enter下来打印我输入的所有字母getchar,但我不想这样做,我想要做的就是按下这封信,然后立即看到我重复介绍的信,而不是按下Enter.例如,如果我按下'a'字母,我想在旁边看到另一个'a',依此类推:
aabbccddeeff.....
Run Code Online (Sandbox Code Playgroud)
但当我按'a'时没有任何反应,我可以写其他字母,只有当我按下时才会出现副本Enter:
abcdef
abcdef
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在使用cc -o example example.cUbuntu下的命令进行编译.
我在c中完全是菜鸟.我必须编写一个mypause()应具有与pause()系统调用类似的功能的函数,并mypause()在重复阻止等待信号的程序中测试该函数.te pause()功能如何工作?我不能这样做mypause():
fprintf( stderr, "press any key to continue\n" );
Run Code Online (Sandbox Code Playgroud)
为了让程序阻止并等待信号?
请记住,我不能使用pause()或sigpause().
我知道在DOS/Windows应用程序中,您可以使用如下行来从代码发出系统命令:
system("pause");
Run Code Online (Sandbox Code Playgroud)
要么
system("myProgram.exe");
Run Code Online (Sandbox Code Playgroud)
......来自stdlib.h.是否有类似的Linux命令,如果是这样,我会找到哪个头文件?
此外,这被认为是糟糕的编程习惯吗?我正在考虑使用该lsmod命令获取加载的内核模块列表.这是个好主意还是坏主意?我发现一些网站似乎以负面的方式查看系统调用(至少是系统("暂停");).
我编写了一个控制台程序,它从用户那里获取一些特定的字符输入来执行操作.程序要求输入,用户键入"i"表示插入或"r"表示删除等.问题是当用户输入多个字母时,程序表现得很奇怪.
char selection;
bool finish = false;
while (!finish){
print_menu();
cin >> selection;
finish = perform_operation(selection);
}
Run Code Online (Sandbox Code Playgroud)
这就是我获得用户输入的方式.我想获得用户输入的第一个字符并忽略其余部分,并表现如此.我该怎么做?
注意:我不允许使用"string"类,但我可以使用每个str函数!
感谢帮助!
另一个案例:
如果我想获得大量字符怎么办?例如:用户输入一个10个字符的名称但我只想获得前5个字符.我该怎么办?
我正在编写一个程序,允许学生写一个问题并将问题(或字符串)存储在变量中,任何人都可以告诉我获取用户输入的最佳方法
感谢您的回答和评论