如果要实现的话, 不是不可能, 只是有点麻烦. 因为cin这样输入的流类, 函数都是以回车结束输入, 你如果要它不显示回车, 我现在能想到的两种方法:\r\n用C语言函数:getch, 把读入的字符转成串然后再转成数字.这样可以读入数字, 而且不换行.但操作非常麻烦. 如果说用getch, 你首先是要让用户输...
用cin.getline,将结束字符改成别的。默认是换行符 getline接受3个参数:要填充的缓冲区,要读取的最大字符加1,以及结束字符。
//这个可以设置一个结束符来结束输入,比如 while(_getch()!='~')/*~为结束符。由于vc这个渣货,回车符_getch()会判断为回到行首,所以不能回车解决。linux下可以*/
cin不能跟endl哈,就像scanf里不能用\n
cin语句可以输入回车换行符,但不能输入空格() 查看答案
循环测试条件是 a != '\n',a 等于 '\n' 才退出循环。a 是 char 类型。cin >> a;cin >> 不会读取按回车键生成的换行符,如果你直接按回车, a 里面什么都没有,所以 a 不等于 '\n' 继续循环。
现在问题变成你要求键盘缓冲区有每当有5个字符,你的控制台要换行.方案一,你可以用SetWindowsHook( WH_KEYBOARD )来监视键盘缓冲区,每当有5个字符,钩子发送一个\n. 问题是你这么大动干戈的搞这些值不值这么个小功能.方案二,关掉控制台回显.创建一个新线程观察cin.rdbuf()的缓冲区,一旦发现有超过5个...
直接把 19 行 删掉即可,19行 是函数 声明, 但是在你的例子中, 被调用的函数已经在 main 的上面 , 所以没有必须再声明, 可以直接删除,如果不想删除的话, 必须把19行 放而 main函数外面(前面),即,函数声明 不能放在 函数内.
cin.ignore (80, '\n'); 在行为方面有何不同? A. 前者读取并丢弃输入缓冲区中的首个换行符,后者读取并丢弃输入缓冲区中的前80个换行符 B. 前者读取并丢弃输入缓冲区中的所有换行符,后者读取并丢弃输入缓冲区中的后80个换行符 C. 前者读取并丢弃输入缓冲区中的所有字符直至遇到换行符,后者读取并丢弃...