对于我的作业问题,我必须使用指针来遍历数组。当我尝试将3个“名称”值存储到名为Object
的{{1}}数组的成员变量中时,我发现它存储该值,但从不递增。因此,给定的最后一个值存储在第一个索引中,接下来的两个为空。
RentalAgency
RentalAgency *agencies_ptr = agencies;
for(int i = 0; i < 3;i++,++agencies_ptr){
infile.get((agencies->name),MAX_SIZE,space);
}
是对象数组
如果输入为赫兹,阿拉莫和预算,则应输出赫兹,阿拉莫和预算。 实际输出仅为预算。
答案 0 :(得分:0)
只要写
for(int i = 0; i < 3; i++){
infile.get( agencies_ptr[i].name, MAX_SIZE, space );
}
答案 1 :(得分:0)
您要取消引用agencies
,而不是agencies_ptr
(并且不需要括号):
RentalAgency *agencies_ptr = agencies;
for(int i = 0; i < 3; ++i, ++agencies_ptr)
infile.get(agencies_ptr->name, MAX_SIZE, space);
但是遍历“范围”的一种更惯用的方法是(it
代表iterator
):
RentalAgency *agencies_it = agencies;
RentalAgency *agencies_end = agencies_it + 3;
for(; agencies_it != agencies_end; ++agencies_it)
infile.get(agencies_it->name, MAX_SIZE, space);
它更干净,表达意图更好,并且在经验丰富的程序员中更熟悉。