c++ primer 第五版第一章習題書店程式
阿新 • • 發佈:2019-02-09
#include <iostream>
#include "Sales_item.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv)
{
Sales_item item1,item2;int cnt=0;
if(std::cin>>item1)
{
cnt=1;
while(std::cin>>item2)
{
if(item1.isbn()==item2.isbn())
{
item1+=item2;
cnt++;
}
else{
std::cout<<item1<<" occours "<<cnt<<" times " <<std::endl;
item1=item2;
cnt=1;
}
}
std::cout<<item1<<" occpurs "<<cnt<<" times "<< std::endl;
}
/* int main(int argc, char** argv) {
Sales_item total;
if (std::cin >> total)
{
Sales_item trans;
int count = 1; //統計記錄
while (std::cin >> trans){
if (total.isbn() == trans.isbn()){
total +=trans;
++count;
}
else{
std::cout << total << std::endl;
std::cout << count << std::endl;
total = trans;
count = 1;
}
}
std::cout << total << std::endl;
std::cout << count << std::endl;
} else {
std::cerr << "Wrong input!" << std::endl;
return -1;
} */
return 0;
}
#include "Sales_item.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv)
{
Sales_item item1,item2;int cnt=0;
if(std::cin>>item1)
{
cnt=1;
while(std::cin>>item2)
{
if(item1.isbn()==item2.isbn())
{
item1+=item2;
cnt++;
}
else{
std::cout<<item1<<" occours "<<cnt<<" times " <<std::endl;
item1=item2;
cnt=1;
}
}
std::cout<<item1<<" occpurs "<<cnt<<" times "<< std::endl;
}
/* int main(int argc, char** argv) {
Sales_item total;
if (std::cin >> total)
{
Sales_item trans;
int count = 1; //統計記錄
while (std::cin >> trans){
if (total.isbn() == trans.isbn()){
total +=trans;
++count;
}
else{
std::cout << total << std::endl;
std::cout << count << std::endl;
total = trans;
count = 1;
}
}
std::cout << total << std::endl;
std::cout << count << std::endl;
} else {
std::cerr << "Wrong input!" << std::endl;
return -1;
} */
return 0;
}
上邊的程式碼,第一部分是我自己寫的,第二部分是是複製的別人的,即被註釋掉的部分,兩個程式碼都有相同的問題,即最後一個輸入的資料是無法打印出來的,原因是無法跳出while,無法跳出while是因為,當while讀到最後一個數字之後,即後面已經沒有數字,while不會跳出,還在等待輸入,如何才能讓while在讀完最後一個數字之後,能跳出while。這個是可以解決的,但是我更想明白的是為什麼while在沒有輸入時,不會跳出,先寫到這,等我解決的了,再修改這個部落格。