如何解决istream 未正确拆分文本文件中的输入
我刚刚开始学习 C++,目前我在使用 istream
时遇到了问题,我试图读取文本文件并将“拆分”值初始化为变量。
P1001 john 3500
在我的 person.cpp
中,istream
函数如下:
Person::Person(const char *id,const char *uname,unsigned sal)
{
strncpy(pid,id,5);
strncpy(name,uname,5);
salary= sal;
}
istream & operator >> (istream &input,Person &p)
{
input >> p.pid >> p.name >> p.salary;
return input;
}
ID: P1001
Name: john
Salary: 3500
但是,我看到:
ID: P1001john
Name: john
Salary: 3500
我尝试在 pid[5] = '\0'
中插入,希望这会破坏该值,但它似乎不起作用。即便如此,我还是认为 istream
会用空格“拆分”字符串值……如果是这样,为什么 pid
包含 id 和 name 值?
我正在使用代码块,尝试清理和重建工作区,但无济于事。欣赏任何见解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。