我們在C++中有一個任務,其中我們有關於多本書的存儲信息(作者姓名,職務,出版商等)。
在獲取書名或作者姓名的同時,我嘗試使用函數getline()以一個句子的形式輸入輸入,但是在執行時,它並不要求我標題(我打算這樣做)相反,它直接問我作者的名字。
下面是代碼:如何獲得多個句子作爲輸入在c + +?
#include<iostream>
using namespace std;
class BookInfo
{
public:
string title,author,publisher;
int price,stock_position;
};
class Books
{
BookInfo b[10];
int no_of_books;
public:
void getdata()
{
cout<<"Enter the number of books: ";
cin>>no_of_books;
for(int i = 0 ; i < no_of_books ; i++)
{
cout<<"Title: ";
getline(cin,b[i].title,'\n');
cout<<"Author: ";
getline(cin,b[i].author,'\n');
cout<<"Publisher: ";
getline(cin,b[i].publisher,'\n');
cout<<"Price: ";
cin>>b[i].price;
cout<<"Stock Position: ";
cin>>b[i].stock_position;
}
}
};
int main(void)
{
Books a;
a.getdata();
}
這裏是輸出:
輸入的圖書數量:1
標題:作者:
什麼是輸入數據,爲什麼不能你只需要使用CIN >> B [I] .title僞 –
你的函數getline caputed第一個換行符(當你輸入書的數量時) – Transcendental
如果有人輸入「3a」的書數量會發生什麼?它應該產生一個錯誤?應該忽略'a'嗎?應該把'a'當作作者嗎? (你需要在寫代碼之前確定你想要的代碼是什麼,並確保你編寫它來做你想做的事情!) –