C++ 输入错误
c++ input error
在此程序中,在输入过程中,将跳过名称和区域字段。我什至尝试 gets(( 输入字符串(名称(,但它仍然在 emp no 之后跳过名称。在此程序中,在输入过程中,将跳过名称和区域字段。我什至尝试 gets(( 输入字符串(名称(,但它仍然在 emp no 之后跳过名称。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
struct addr
{
int houseno;
char area[20];
char city[20];
char state[20];
};
struct Emp
{
int empno;
char name[20];
char desig[10];
addr address;
float basic;
}worker;
int main()
{
cout<<"Employee no: ";
cin>>worker.empno;
cout<<"Name: ";
cin.getline(worker.name,20);
cout<<"Designation: ";
cin.getline(worker.desig,10);
cout<<"Enter Address: "<<endl;
cout<<"1. House no. :";
cin>>worker.address.houseno;
cout<<"2. Area: ";
cin.getline(worker.address.area,20);
cout<<"3. City: ";
cin.getline(worker.address.city,20);
cout<<"4. State: ";
cin.getline(worker.address.state,20);
cout<<"Basic Pay: ";
cin>>worker.basic;
cout<<endl;
return 0;
}
在获得整数变量的输入后,您应该使用 cin.ignore(( 作为 getline(( 函数。这是您的更正版本
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
struct addr
{
int houseno;
char area[20];
char city[20];
char state[20];
};
struct Emp
{
int empno;
char name[20];
char desig[10];
addr address;
float basic;
}worker;
int main()
{
cout << "Employee no: ";
cin >> worker.empno;
cin.ignore(); //use it
cout << "Name: ";
cin.getline(worker.name, 20);
cout << "Designation: ";
cin.getline(worker.desig, 10);
cout << "Enter Address: " << endl;
cout << "1. House no. :";
cin >> worker.address.houseno;
cin.ignore(); //because houseno is also integer
cout << "2. Area: ";
cin.getline(worker.address.area, 20);
cout << "3. City: ";
cin.getline(worker.address.city, 20);
cout << "4. State: ";
cin.getline(worker.address.state, 20);
cout << "Basic Pay: ";
cin >> worker.basic;
cout << endl;
return 0;
}
相关文章:
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 堆栈中大小变量输入错误 (C++)
- 实现 DFS 在较短的输入下工作正常,但在较大的输入下会抛出分段错误
- C++中的输入限制和错误检查
- 关于 SIGTSTP 错误和无休止的输入
- 为什么不能通过在错误输入后设置 std::cin.clear() 来使用 std::cin?
- 这段代码在获得错误输入时不会阻止 stoi 运行
- 无法转换 .CATPart 文件.错误:输入文件路径似乎包含不支持的字符
- 使用 cin 错误输入多个浮点数
- 构造函数错误:输入末尾的预期“{”
- 如何一次一个单词而不是一行一行地消除错误输入
- 错误输入未在此范围中显示
- c++在没有tryCatch块的情况下捕获错误输入
- c++中的纠错循环,查找字符串中的特定字符并将其标记为错误输入
- 如何为错误输入编写异常处理
- Swig错误-错误:输入(2)中的语法错误
- 错误:输入末尾应为“}”
- std::cin无限循环错误输入
- 如何避免来自用户的错误输入?