Чтение CSV-файла с ошибкой сегментации

0

Я получаю ошибку сегментации, и я понятия не имею, почему я получаю это. Он читает в моем csv без проблем, но в конце его запуска я получаю ошибку сегментации. Я попытался использовать функцию отладки Codeblocks, и это не помогло. Может ли кто-нибудь указать мою ошибку.

#include <iostream>
#include <fstream>
#include <string>

using namespace std;



void loadCSV(int G[][24]) {
    ifstream csv;
    string line;
    csv.open("matrix.csv");
    if (csv.is_open()){
        int lineNum = 0;
        while ( (getline (csv,line)) && (lineNum!=24)){
            for (int pos = 0;pos<line.length();pos++){
                if (line.at(pos) == ','){
                    continue;
                }
                //cout << line.at(pos);
                if (line.at(pos) == '0'){
                    G[lineNum][pos] = 0;
                    cout << lineNum << "-" << pos << "\n";
                }

                else{
                    G[lineNum][pos] = 1;
                    cout << lineNum << "-" << pos << "\n";;
                }
            }
            cout << endl;
            lineNum++;
        }
        cout << lineNum<< endl;
        csv.close();
    }

    else cout << "Unable to open file";

}



int main(){
    int G[24][24];
    loadCSV(G);
    cout << G[0][1];

    return 0;
}
Теги:
csv
segmentation-fault

1 ответ

0
Лучший ответ

Просто проверьте значение 'pos' и 'lineNum' перед присвоением значения G [lineNum] [pos]. Если какой-либо из них больше/равен 24, то это недействительно для выполнения задания.

  • 0
    Спасибо ..... Я только что понял, что я не учел pos, разделив на 2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню