如果输入的书名里有空格,怎么修改上述代码,才能使书名顺利输入
时间: 2024-03-24 17:37:38 浏览: 25
当输入书名中有空格时,cin 会将空格作为输入结束的标志,因此需要使用 getline 函数来读入书名。以下是修改后的代码:
```cpp
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
struct book {
string name;
string price;
};
bool compare(book a, book b) {
return a.name < b.name;
}
int main() {
int n;
cin >> n;
book a[n];
cin.ignore(); // 忽略上一次输入操作留下的换行符
for (int i = 0; i < n; i++) {
getline(cin, a[i].name); // 使用 getline 读入书名
cin >> a[i].price;
cin.ignore(); // 忽略上一次输入操作留下的换行符
}
sort(a, a + n, compare);
for (int k = 0; k < n; k++) {
cout << a[k].price << ',' << a[k].name << endl;
}
return 0;
}
```
这个修改后的代码使用 getline 函数来读入书名,并在读入价格后使用 cin.ignore() 函数来忽略上一次输入操作留下的换行符。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)