凯旋鹿 2023-09-09 16:55 采纳率: 0%
浏览 98
已结题

用C++读取txt文件并将其中的有用信息储存在结构体数组中

我试了好多次,嗯……老有问题 感觉结果差不多了,但是通不过平台。文件中的开头有部分无用信息就不需要写入结构体数组当中。题目如下
这张中的三个函数是需要自己写的

img

下面是默认写好的代码

img

需要读取的文件大致是:
第一排 一句标题
第二排 书号 书名 定价
后面很多排就是具体信息。

  • 写回答

5条回答 默认 最新

  • YT8984 2023-09-09 17:32
    关注

    下面是一个读取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>中。最后,程序输出每本书的信息。

    如有其他问题,请随时问我。(如果可以的话就把悬赏给我吧)

    img


    钱)

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月10日
  • 修改了问题 9月10日
  • 修改了问题 9月10日
  • 修改了问题 9月10日
  • 展开全部

悬赏问题

  • ¥15 office打开卡退(新电脑重装office系统后)
  • ¥300 FLUENT 火箭发动机燃烧EDC仿真
  • ¥15 【Hadoop 问题】Hadoop编译所遇问题hadoop-common: make failed with error code 2
  • ¥15 vb6.0+webbrowser无法加载某个网页求解
  • ¥15 RPA财务机器人采购付款流程
  • ¥15 计算机图形多边形及三次样条曲线绘制
  • ¥15 根据protues画的图用keil写程序
  • ¥200 如何使用postGis实现最短领规划?
  • ¥15 pyinstaller打包错误
  • ¥20 cesm的气溶胶排放文件