c++ - 制作一个允许输入中有空格的读取函数(C++)

标签 c++ input

“编写一个名为Person的类,代表一个人的姓名和地址。使用一个string来保存这些元素中的每一个。添加操作以读取和打印Person 反对你写的代码。”

请注意,我还没有到达有关访问控制的部分。

#include <iostream> 
#include <string>

using std::string;

struct Person
    {
        string name_var, address_var;
    };

std::ostream &print(std::ostream&, const Person &);
std::istream &read(std::istream&, Person &);


std::istream &read(std::istream &is, Person &item)
    {
         is >> item.name_var >> item.address_var;
         return is;
    }

std::ostream &print(std::ostream &os, Person &item)
    {
         os << item.name_var << " " << item.address_var;
         return os;
    }  

有了这个,如果我使用 std::cin 作为 read 的第一个参数,我只能读取单字名称和地址,这不是很有用。你能以某种方式使用 getline 吗?

最佳答案

您可以使用:

std::getline(is, item.name_var);

你也可以指定一个分隔符char作为第三个参数

关于c++ - 制作一个允许输入中有空格的读取函数(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844839/

相关文章:

c++ - 如何使用 Qt 将颜色应用于 Excel 单元格?

c++ - MFC C++ 指向函数新手的指针

c++ - 用 C++ 重写 grep

c++ - 正确的 C++ 指针语法

[]的C++含义

html - 用户如何使输入类型日期为空?

php - jquery和php,加载图片并使用每个图片的src

c++ - 将 C++ 的相同功能/概念转换为序言

javascript - 如何利用 3 个 HTML 输入框来计算三 Angular 形的面积?

javascript - 如何使用 jQuery 将 input[type=submit] 替换为 input[type=text]?