如何跳過讀取文件的第一行?

花生醬

當我在代碼中調用它時,如何忽略文本文件的第一行並從第二行開始?我想知道如何。另外,如何根據名字、姓氏和等級對文件進行排序?我只對名字進行了排序,但沒有對姓氏進行排序,並相應地進行評分。如果您有任何想法,我希望您能與我分享。謝謝您的幫助!這是我的代碼:

#include <iostream>
#include <fstream>
using namespace std;
  
struct studentRecord{
    string lastname;
    string firstname;
    string grade;
};
 
int main(){

    ifstream  ifs("student-file.txt");
    string lastname, firstname, grade, key;
    
    studentRecord records[20];
    if(ifs.fail()) {
        cout << "Error opening student records file" <<endl;
        exit(1);
     }
    int i = 0;
    while(! ifs.eof()){
        ifs >> lastname >> firstname >> grade;

        records[i].lastname = lastname;
        records[i].firstname = firstname;
        records[i].grade = grade;
        i++;
    }  
 
    for (int a = 1, b = 0; a < 20; a++) {
        key = records[a].firstname ;
        b = a-1;
                
        while (b >= 0 && records[b].firstname > key) {
            records[b+1].firstname = records[b].firstname;
            b--;
        }
        records[b+1].firstname = key;
    }

    for (int k = 0; k < 20; k++) {
        cout << "\n\t" << records[k].firstname << "\t"<< records[k].lastname << "\t" << records[k].grade;
    }
 
}
羅斯·艾倫

當我看到這篇文章時,它讓我想起了在大學完成的類似任務。我已經重寫了您的代碼以執行相同的任務,但使用類而不是結構。我還包含了一種通過使用此處的函數對向量進行排序的方法

我已經包括了@Scheff's Cat 提到的“忽略第一行”方法。

這裡是:

#include <iostream>
#include <fstream>
#include <sstream>
#include <limits>
#include <string>
#include <vector>

using namespace std;

class studentrecord{
    string firstname, lastname, grade;        
    public:
    studentrecord(string firstname, string lastname, string grade){
        this -> firstname = firstname;
        this -> lastname = lastname;
        this -> grade = grade;
    }

    friend ostream& operator<<(ostream& os, const studentrecord& studentrecord) {
        os << "\n\t" << studentrecord.firstname << "\t" << studentrecord.lastname << "\t" << studentrecord.grade;
        return os;
    }
};

void displayRecords(vector <studentrecord*> records){
    for(int i = 0; i < records.size(); i++){
        cout << *records[i];
    }
}

int main(){
    //read in file
    ifstream infile;
    infile.open("student-file.txt");
    infile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    if (!infile.is_open()){
            cout << "Error opening student records file" <<endl;
            exit(1);
    }
    vector <studentrecord*> records;
    string firstname, lastname, grade;
    while (infile >> firstname >> lastname >> grade;) {
        records.push_back(new studentrecord(firstname, lastname, grade));
    }

    displayRecords(records);

    return 0;
}

為了對矢量進行排序,使其按名字、姓氏或等級的順序打印,我使用了以下函數:

bool sortfirstname(studentrecord* A, studentrecord* B) {
    return (A->getfirstname() < B->getfirstname());
}

bool sortlastname(studentrecord* A, studentrecord* B) {
    return (A->getlastname() < B->getlastname());
}

bool sortgrade(studentrecord* A, studentrecord* B) {
    return (A->getgrade() < B->getgrade());
}

sort(records.begin(), records.end(), (sortfirstname));
sort(records.begin(), records.end(), sortlastname);
sort(records.begin(), records.end(), sortgrade);

如果你想按名字排序,你可以先調用sort(records.begin(), records.end(), (sortfirstname));函數,然後調用displayrecords()函數。

使用存儲在向量中的類的優點是您不必說明包含學生詳細信息的向量的大小,因為您可以使用該vector.push_back()函數將信息添加到向量的末尾它還使對包含的數據進行排序變得更加容易。

如果有什麼不清楚的,請告訴我,我可以幫助您。

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

mule 4 讀取 csv 文件跳過第一行

如何在 Python MySQL 中跳過一行

讀取文件文本熊貓跳過一些空間

用 sed 全局替換,但跳過第一行

Java BufferedReader.readLine() 跳過一行

Java 和 org.apache.poi 讀取 excel 第 47 行時被跳過

逐行讀取文件並分別對每一行求和

如何在 Swift 中僅讀取文件的第一部分?

如何在沒有臨時表的情況下使用 SQL 游標跳過一行

讀取每列的第一個元素,然後讀取 csv 文件中的整行

當前 5 行有時超過 1 列時,如何讀取 CSV 文件的不同部分?

為什麼在文本文件中似乎只讀取最後一行?

如果該項目閱讀器或步驟的文件不存在,如何跳過整個步驟

java如何使用掃描儀在一行中讀取2種不同的數據類型

如何在 javascript for-of 循環中跳過第一次迭代

僅從行集中取第一行

如何使用bash讀取文件然後執行

.hex 文件讀取或 python 中的 .bin - 獲取第一個地址值

如何在 python 中操作 JSON 文件使第一列成為第一行?

為什麼我的數據讀取器只返回一行?

在一行 C++ 中讀取不同數據類型的輸入

為什麼我的 java Scanner.nextLine() 代碼有時會跳過一行?

如何在一行上讀取多個浮點數,然後將它們添加到數組中?

C++ 奇怪的文件行讀取

穆特。如果文件在磁盤上,如何跳過文件?

我想通過讀取文本文件來創建一個 java 對象

僅在第一個文件中讀取帶有標題的多個 CSV 文件 - Spark

如何读取文件的最后一行?

通過跳過第一個鍵值來迭代字典

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv