C++中输入n+1行,其中前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中书号和书名为字符串类型,价格为浮点数类型
时间: 2024-09-12 13:15:30 浏览: 42
在C++中,要实现上述要求的输入功能,可以使用标准输入流对象`std::cin`来读取输入。下面是一个简单的示例代码,展示如何读取输入并存储到一个结构体数组中:
```cpp
#include <iostream>
#include <vector>
#include <string>
struct Book {
std::string id; // 书号
std::string title; // 书名
float price; // 价格
};
int main() {
std::vector<Book> books;
Book tempBook;
while (true) {
// 读取书号、书名和价格
std::cin >> tempBook.id >> tempBook.title >> tempBook.price;
// 检查是否是结束标志
if (tempBook.id == "0" && tempBook.title == "0" && tempBook.price == 0.0f) {
break; // 如果是结束标志,则退出循环
}
// 将当前图书信息添加到books数组中
books.push_back(tempBook);
}
// 此处可以添加代码以进一步处理或输出图书信息
return 0;
}
```
在这段代码中,我们首先定义了一个`Book`结构体,用于存储每本图书的信息。然后,我们创建了一个`std::vector<Book>`类型的容器`books`来存储所有图书的信息。在`while`循环中,我们使用`std::cin`来读取一行输入,直到输入的是结束标志"0 0 0"为止。每次读取成功后,我们将临时`Book`对象添加到`books`容器中。
需要注意的是,这段代码没有进行错误检查,例如输入格式不正确或超出预期的输入等情况。在实际应用中,应当添加相应的错误处理逻辑以确保程序的健壮性。