VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 299|回复: 2

请教下cin>>输入问题

[复制链接]
06_avatar_middle
最佳答案
0 
在线会员 发表于 2021-9-27 23:53:11 | 显示全部楼层 |阅读模式
看书上教程,自己也模仿一个,碰到在while中第二遍 碰到cin会一直显示不会停下要求输入了

#include <iostream>
#include <fstream>
using namespace std;


class CNamedata{
private:
    int m_num1;
    char m_name1[10];
    int m_sex;
    size_t m_gua;
public:

    void m_setdata(int ,char *,int ,size_t);
};


void CNamedata::m_setdata(int num1,char *p,int sex,size_t gua){
    m_num1=num1;
    strcpy(m_name1,p);
    m_sex=sex;
    m_gua=gua;
}

int main(){
    fstream binwfile("g:\\users\\exe\\ccc.txt",ios::binary | ios::in |ios::out );
    if(!binwfile){
        cerr<<"无法打开文件"<<endl;
        return 1;
    }
    CNamedata my;
    int num1=1;
    char name1[10];
    int sex;
    size_t gua;
    cout<<"请输入序号(为-1结束):";
    cin>>num1;
    while(num1>=0){                         //这个whlie里面的cin>>从第2遍开始不会停下来会一直执行
        cout<<"姓名:";
        cin>>setw(8)>>name1;
        cout<<"姓别(0=女,1=男,2=其它):";
        cin>>sex;
        cout<<"身高:";
        cin>>gua;
        my.m_setdata(num1,name1,sex,gua);
        binwfile.write(reinterpret_cast<const char*>(&my),sizeof(my));

        binwfile.seekp(sizeof(my)+1);

        cout<<"请输入序号(为0结束):";
        cin>>num1;
    }



    return 0;
}




上一篇:进程通信剪切板,只能复制第一个字节,感谢各位大佬进来指正
下一篇:请问这个程序在vs上运行出来的结果为什么是乱码
00_avatar_middle
最佳答案
5 
在线会员 发表于 2021-9-28 07:24:17 | 显示全部楼层
基本流程问题while(num1>=0){  ---------while(num1>0){
06_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-9-30 00:34:17 | 显示全部楼层
oyxbl 发表于 2021-9-28 07:24
基本流程问题while(num1>=0){  ---------while(num1>0){

找出原因了,是我把gua设成int类型,但输入输入1.80这样数字,是按float类型输入,会出现满屏字符现像。
不知道什么原因
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-23 16:08

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表