我是否可以在输入后摆脱行尾字符
Is it possible for me to get rid of the end of line character after an input?
char choice;
float inputa, inputb;
cin >> inputa >> choice >> inputb;
while(inputa != 0 && choice != '0' && inputb != 0)
{
cout << " = " << calculation(inputa,choice,inputb) << endl << endl;
cin >> inputa >> choice >> inputb;
}
system("PAUSE");
return 0;
这是屏幕的外观:
5 + 4
= 9
用户给出他们的输入并按回车键,所以这就是我猜将他们带到下一行的原因,但是有没有办法让它显示:
5 + 4 = 9
显示结果后,它将使用endl
转到下一行,用户可以再次输入他们的问题。
我是一个完整的初学者,如果这个问题没有多大意义,我很抱歉。
你不能使用doit,因为cin
在你点击它后打印每个字符。您必须定义自己的输入函数。
例如,您可以在conio.h
中使用getch
(这不是一个有效的解决方案,因为 getch 只接受一个字符。你将不得不以另一种方式鳍。这里重要的是得到这个想法)。
#include <iostream>
#include <conio.h>
using namespace std;
void input(float *a, char *c, float *b)
{
char in;
do {
in = getch();
cout << in;
} while (in == ' ');
*a = in - '0';
do {
in = getch();
cout << in;
} while (in == ' ');
*c = in;
do {
in = getch();
cout << in;
} while (in == ' ');
*b = in - '0';
}
int main()
{
char choice;
float inputa, inputb;
cout << "Expression: ";
input(&inputa, &choice, &inputb);
cout << " = " << inputa+inputb << endl;
return 0;
}
有两种方法可以实现您正在寻找的目标。
首先 - 您可以在 cout 之前从终端中删除最后一个字符,因此取消 endl。
其次 - 您可以关闭终端上的回声,关闭输入缓冲并自行处理整个输入回显。
不幸的是,这两种方法都无法从纯C++中访问。您必须根据您的平台使用一些终端API(Windows上的conio.h和Linux上的termios.h)。虽然第一种方法更容易编码,但我不确定它是否在所有平台上都可行。通用解决方案根本不可能。
我知道这对初学者来说听起来可能很可怕,因此您可能会对可能仍然适合您需求的更简单的解决方案感到满意。您可以在平台上找到清除整个终端的任何命令(在Linux上清除,在Windows上清除cls),通过cstdlib的系统函数调用它并打印整个方程。
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
float a,b; char choice;
cin>>a>>choice>>b;
system("clear"); //on Windows "cls"
cout<<a<<choice<<b<<"="<<calculation(a,choice,b)<<"n";
system("PAUSE");
return 0;
}
相关文章:
- 如何忽略第一个字符输入后的所有内容
- 使用单个变量对字符输入进行计数
- 确定用户字符输入 C++ 的结束
- 将单个字符串/字符输入串行监视器
- 如何将字符输入限制为仅获取一个字符串"cin"
- C++:使用 fgets() 读取字符输入时出错
- 如何拒绝 cin 中的字符输入并定义最小和最大整数值
- C++ 字符输入仅输出第一个字母
- 限制 2D 数组中的字符输入
- 循环直到整数输入在所需范围内无法处理非数字字符输入
- C++常量字符*输入
- 使用带符号字符输入的isalnum-Visual C++
- 限制C++中的字符输入
- 字符输入问题
- 字符** + 输入" "字符
- 文件 I/O 操作 - 奇怪的字符输入
- 如何在不暂停循环的情况下使用字符输入停止循环
- C++ - 对'if'语句使用特定字符输入
- 使用 "NEW" 获取字符输入和给定输出,并从用户那里获取字符串长度
- 正确的逐个字符输入