总计n+1行,第1行是所创建的图书表中的图书个数,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。 如何用c/c++写出来
时间: 2024-10-15 11:12:20 浏览: 37
在C/C++中,你可以使用标准输入输出库以及简单的控制结构来生成这样的文本文件。这里是一个基本的示例,假设你想从命令行获取`n`作为参数:
```cpp
#include <iostream>
#include <iomanip> // 包含用于设置浮点数格式的头文件
int main(int argc, char* argv[]) {
if (argc != 2) { // 检查是否传入了正确的参数
std::cerr << "Usage: program_name number_of_books\n";
return 1;
}
int n = std::stoi(argv[1]); // 转换字符串到整数
std::ofstream file("books.txt"); // 创建文件流对象
// 写入第一行 - 图书总数
file << n << "\n";
// 遍历书籍,写入每一行信息
for (int i = 1; i <= n; ++i) {
// 书号、书名、价格的数据
const char* bookNo = "000" + std::to_string(i); // 示例书号
const char* bookTitle = "Book Title " + std::to_string(i);
double bookPrice = 39.99; // 示例价格,保留两位小数
// 将数据连接并写入文件,用空格分隔
file << bookNo << " " << bookTitle << " " << std::fixed << std::setprecision(2) << bookPrice << "\n";
}
file.close(); // 关闭文件
std::cout << "Books data has been written to books.txt.\n"; // 提供反馈
return 0;
}
```
运行这个程序时,你需要提供书籍的数量作为参数,例如 `./program_name 5`,它将创建一个名为`books.txt`的文件,内容类似于:
```
5
001 Book Title 1 39.99
002 Book Title 2 39.99
...
```
阅读全文