| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3002 人关注过本帖
标题:关于字符串任意输入并且识别空格的问题
取消只看楼主 加入收藏
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
关于字符串任意输入并且识别空格的问题
#include<iostream>
#include<string>
using namespace std;

class Person
{
    private:
        string num;   //编号
        string name;  //姓名
    public:
        Person();
        ~Person()
        {}
        void Person::enter();
        void print();
};

Person::Person()
{
    num='\0';
    name='\0';
}

void Person::enter()   //Person类数据信息的输入
{
    cout<<"输入编号:";
    cin>>num;

    cout<<"输入姓名:";
    cin>>name;
}

void Person::print()  //Person类数据信息的输出
{
    cout<<"编号:"<<num<<endl;
    cout<<"姓名:"<<name<<endl;
}



class Teacher:public Person  
{
    private:
        string zhichen; //职称
        string bumen;   //部门
    public:
        Teacher():Person()
        {
            zhichen='\0';
            bumen='\0';
        }
        ~Teacher()
        {}

        void enter()
        {
            Person::enter();
            cout<<"输入职称:";
            cin>>zhichen;
            cout<<"输入部门:";
            cin>>bumen;
        }

        void print()
        {
            Person::print();
            cout<<"职称:"<<zhichen<<endl;
            cout<<"部门:"<<bumen<<endl;
        }
};

int main()
{
        Teacher t1;
   
    cout<<"教师信息输入:"<<endl;
    t1.enter();
    cout<<"***************************************"<<endl;
    cout<<"教师信息显示:"<<endl;
    t1.print();

    return 0;
}
Teacher类中的职称和部门如果要输入空格怎么改?如输入职称中:gaoji jiaoshi
搜索更多相关主题的帖子: 字符串 姓名 
2011-05-11 12:48
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 2楼 hellovfp
能不能麻烦你在原代码的基础上改下?

Einmal ist keinmal
2011-05-11 16:05
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 2楼 hellovfp
如果用getline函数的话,形式是getline(cin,zhichen);吧?
这样的话可以实现输入,但是Teacher类中t1对象显示数据信息的时候职称一栏是空白的。

Einmal ist keinmal
2011-05-11 16:11
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 2楼 hellovfp
图片附件: 游客没有浏览图片的权限,请 登录注册

Einmal ist keinmal
2011-05-11 16:20
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 2楼 hellovfp
会出现如图中所显示的问题。

Einmal ist keinmal
2011-05-11 16:20
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 7楼 hellovfp
好吧,还是定义数组,那如果输入的字符串长度大于 80呢?

Einmal ist keinmal
2011-05-11 21:09
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 7楼 hellovfp
就是能不能不规定字符数组长度的那种?

Einmal ist keinmal
2011-05-11 21:12
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 7楼 hellovfp
试了还有一种可以输入空格的。
简单的小代码如下:
string a;
      getline(cin,a);

这样输入的字符串就可以包含空格了。
头文件要定义
#include<string>

但是,貌似在VC6.0里面要按两次eter键才能结束a的输入,接着输入另外的数据。

Einmal ist keinmal
2011-05-13 22:44
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 8楼 hellovfp
再次试了下,getline果然是不行的。
Person::enter();
            cin.sync();
            cin.clear();
            cout<<"输入职称:";
            cin.getline(input, 80);
            zhichen = input;
            cout<<"输入部门:";
            cin.getline(input, 80);
            bumen = input;

那个请问一下:这段代码里面的
cin.sync();
            cin.clear();

这两句的意思是什么?如果去掉这两句话,运行就错误了。

Einmal ist keinmal
2011-05-14 05:38
快速回复:关于字符串任意输入并且识别空格的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026881 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved