无法在 C++ 中输入字符数组
unable to input character array in c++
代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
struct student
{
char name[20];
int id;
float cgpa;
};
int main()
{
student s[100];
int n,i;
cout<<"Enter number of students: ";
cin>>n;
cout<<"Enter records of "<<n<<" students"<<endl;
for(i=0; i<n ; i++)
{
cout<<"Enter name: ";
gets(s[i].name);
cout<<"Enter ID: ";
cin>>s[i].id;
cout<<"Enter CGPA: ";
cin>>s[i].cgpa;
cout<<endl;
}
for(i=0; i<n ; i++)
{
cout<<"nName: "<<s[i].name;
cout<<"nID: "<<s[i].id;
cout<<"nCGPA: "<<s[i].cgpa<<endl;
}
}
输出:
Enter number of students: 2
Enter records of 2 students
Enter name: Enter ID:
使用崇高的文本 3 C++
使用<string>
作为名称而不是字符数组,然后像往常一样使用cin
而不是gets
来读取字符串。
作为某个程序员的指针,您按下的输入作为换行符'n'
放入输入缓冲区,然后被get()
接受,导致它跳到下一个输入。
有两种方法可以解决此问题:
-
在接受输入的循环开始时使用
cin.ignore()
。 -
更好的选择是摆脱
gets()
.自 c++14 以来,它已被弃用。其次,将字符数组替换为字符串。
因此,该结构将看到修改string name;
只需在循环中cin>>s[i].name;
即可。
就是这样。
此外,最好使用cstdio
而不是stdio.h
.
相关文章:
- 无法在 C++ 中输入字符数组
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 在不使用字符串库的情况下输入字符*
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- C++中输入字符数组的特定验证
- 如果用户在 int 中输入字符,如何使用输入
- 当我们在以下程序(C )中输入字符时,该如何解决
- 如何在结构中输入字符到向量
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 输入字符时忽略回车键
- 在 switch 语句中输入字符以进行C++时用户输入错误
- 使用Back_inserter从任何位置的输入字符中使用Back_inserter进行过滤数组字符串
- 如何在应该显示的printf之前输入字符
- C++ 输入字符而不是 int 会导致无限循环.如何检查错误的输入
- 为什么"keep_window_open()"不等待输入字符?
- 为什么我的程序在输入字符时有一个无限循环
- 当提示输入整数值时输入字符时,为什么程序会中断
- 关闭回显后如何再次回显输入字符
- 忽略输入字符
- 从文件的单行读取输入字符