c++-为何char【17】无法输入字符

问题描述

为何char【17】无法输入字符

#include
#include
using namespace std;
class Date{
public:
Date(int y, int m, int d);
~Date(){}
Date(){}
int getyear()const{ return year; }
int getmonth()const{ return month; }
int getday()const{ return day; }
Date(Date &birthday);
void enteringbirthday();
void showbirthday();
private:
int year;
int month;
int day;
};
Date::Date(int y, int m, int d){
year = y;
month = m;
day = d;
}
Date::Date(Date &birthday){
year = birthday.year;
month = birthday.month;
day = birthday.day;
}
void Date::enteringbirthday(){
cout << "年:";
cin >> year;
cout << "月:";
cin >> month;
cout << "日:";
cin >> day;
}
void Date::showbirthday(){
cout << "出身日期:" << year << "年" << month << "月" << day << "日" << endl;
}
class People{
public:
People(){}
People(string n, string s, char id[17]) :birthday(){
number = n;
sex = s;
strcpy_s(ID, id);
}
void entering();
void show();
~People(){}
private:
string number;
string sex;
char ID[17];
Date birthday;
};
void People::entering(){
cout << "录入编号:";
cin >> number;
cout << "录入性别(female,male):";
cin >> sex;
cout << "录入身份证:";
cin >> ID[17];
ID[17] = '';
cout << "录入出生日期:";
birthday.enteringbirthday();
}
void People::show(){
cout << "编号:" << number;
cout << "性别:" << sex;
cout << "身份证:" << ID;
birthday.showbirthday();
}
int main(){
People x;
x.entering();
x.show();
return 0;
}

解决方案

身份证18位加上需要19才够。

解决方案二:

身份证数组应该19位,输入时需要数组名即可,不需要单独加字符串结束标志。

char ID[19];
 cin >> ID;

解决方案三:

不是id无法输入数值

时间: 2024-11-25 13:04:27

c++-为何char【17】无法输入字符的相关文章

有关TextBox中输入字符控制的一种解决办法

解决|控制 我们知道,在C#中,TextBox控件对输入字符的控制有keypress.keyup.和keydown事件来使用,但大家也看到了,这几个事件对输入字符的控制都有一定的缺陷,如果,你使用中文输入法,那么很多原来你不希望输入的字符也可以输入进去.这几天做程序的时候,就碰到了这个问题,我的解决思路很简单,既然这三个事件不再起作用,那么我就使用了TextBox控件中时刻能发生的TextChanged事件,以期望在这个事件中作些东西,以达到控制字符的目的.废话就不多说了,我将控制输入字符为数字

jQuery实现限制textarea文本框输入字符数量的方法

  本文实例讲述了jQuery实现限制textarea文本框输入字符数量的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (function($) { $.fn.extend( { limiter: function(limit, elem) { $(this).on("keyup focus", function() { setCount(this, elem); }

c语言输入字符删除特定字符问题

问题描述 c语言输入字符删除特定字符问题 输入一行字符,要求删去其中的某个字符后输出,要删除的字符由键盘输入. 解决方案 #include#includevoid main(){ char s[81]; int in; printf(""input a string:""); gets(s); printf(""input n:""); scanf(""%d""&n); for(

《Java 7程序设计入门经典》一3.1 从键盘输入字符

3.1 从键盘输入字符 到目前为止,本书中的示例程序都向用户显示信息,但不从用户接收信息.于是,只使用了控制台输出,没有使用控制台输入(即键盘输入).主要原因在于,许多Java输入需要依赖和使用本书还未讲到的特性.这些特性在后面才会提及.另外,在真实情况下,许多Java程序和applet是图形界面或是窗口界面的,而不是控制台的.因此,本书的例子很少使用控制台输入.但是,有一种控制台输入相对容易使用,那就是从键盘读入字符.因为本章有许多需要用到这个特性的例子,所以在这里讨论它们. 我们将用Syst

android-Android 输入字符,转换为ascii码输出,编译没问题,但是运行时有问题

问题描述 Android 输入字符,转换为ascii码输出,编译没问题,但是运行时有问题 public class Activity1 extends Activity { public static int char2ASCII(char c) { return (int) c; } public static int[] string2ASCII(String s) {// 字符串转换为ASCII码 if (s == null || "".equals(s)) { return n

Qt 向TextEdit中输入字符

问题描述 Qt 向TextEdit中输入字符 我写了这样一段代码 目的是把一个int拆分成4个char然后转成string以插入到TextEdit中,但是我在调试的时候发现了这种问题: bicode现在是对的,组合起来应该是0x23baffec 但是tmp后面四位不对,这是什么情况? 哪位大神能帮我指出错误~ 解决方案 QT的字符编码转换 .字符编码转换 QTQt TextEdit 使用 解决方案二: 请把inst值给出来,

jquery 计算文本框输入字符数代码

jquery 计算文本框输入字符数代码 asp教程x文件: 引入js <script type="text/网页特效" src="../script/maxlength.js"></script> 因为是限制textarea控件,所以必须使用一个hidden input来控制长度,原因是textarea的maxlength属性取值为用户实际输入的字符长度.如果是限制input的输入长度,就不需要了.                     &

代码-内联汇编向int变量中输入字符报错的问题

问题描述 内联汇编向int变量中输入字符报错的问题 在VC内联汇编中, myarray[]是个int型的数组 用循环来输入数组,以下是循环内的代码 C/C++ code char inputformat[]="%d"; Assembly code lea eax,myarray[ebx]; // push eax; // lea eax,inputformat; // achieve the number input push eax; // call scanf; // add es

统计输入字符各个字母出现频率的解题思路_C 语言

本文跟大家分享的是编写一个程序,能够计算输入字符各个字母出现的频率,具体如下  先跟大家展示一下最终结果: 刚刚接手题目的时候,我想得很复杂,因为26个字母中有大小写嘛,小写a~z,大写A~Z 但是,无论是大写还是小写,字母都只有26个,在此,当输入大写字母的时候,我们就将其转换为小写就ok啦 大写字母转换为小写字母,有个很方便的函数tolow(),在ctype.h中,详情文章末. 看过前一篇文章<c语言:计算输入字符个数>中使用数组统计单词长度的方法,在统计字母的个数的时候,依旧可以,只不过