我试了好多次,嗯……老有问题 感觉结果差不多了,但是通不过平台。文件中的开头有部分无用信息就不需要写入结构体数组当中。题目如下
这张中的三个函数是需要自己写的
下面是默认写好的代码
需要读取的文件大致是:
第一排 一句标题
第二排 书号 书名 定价
后面很多排就是具体信息。
我试了好多次,嗯……老有问题 感觉结果差不多了,但是通不过平台。文件中的开头有部分无用信息就不需要写入结构体数组当中。题目如下
这张中的三个函数是需要自己写的
下面是默认写好的代码
需要读取的文件大致是:
第一排 一句标题
第二排 书号 书名 定价
后面很多排就是具体信息。
下面是一个读取txt文件并将有用信息存储在结构体数组中的C++代码示例:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
struct Book {
std::string bookNo;
std::string bookName;
double price;
};
std::vector<Book> readFile(const std::string& filename) {
std::ifstream file(filename);
std::vector<Book> books;
if (file.is_open()) {
std::string line;
// 跳过无用信息
std::getline(file, line);
while (std::getline(file, line)) {
Book book;
std::stringstream ss(line);
ss >> book.bookNo >> book.bookName >> book.price;
books.push_back(book);
}
file.close();
} else {
std::cout << "无法打开文件: " << filename << std::endl;
}
return books;
}
int main() {
std::string filename = "books.txt"; // 修改为你的文件路径
std::vector<Book> books = readFile(filename);
for (const auto& book : books) {
std::cout << "书号: " << book.bookNo << std::endl;
std::cout << "书名: " << book.bookName << std::endl;
std::cout << "定价: " << book.price << std::endl;
std::cout << std::endl;
}
return 0;
}
请注意,代码中的"books.txt"是文件的相对路径,你需要根据实际情况修改为你的文件路径。此外,如果你的文件编码不是纯文本格式(如UTF-8),可能需要在代码中进行相应的编码处理。
此代码使用了std::ifstream
类来读取文件,并使用std::getline
函数逐行读取文件内容。然后,它将每一行解析为结构体Book
中的字段,并将Book
对象存储在std::vector<Book>
中。最后,程序输出每本书的信息。
如有其他问题,请随时问我。(如果可以的话就把悬赏给我吧)