Anonymní profil martin – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil martin – Programujte.comAnonymní profil martin – Programujte.com

 

Příspěvky odeslané z IP adresy 83.208.122.–

martin
C / C++ › Načítání z textového souboru…
4. 12. 2013   #184753

Zdravím, řeším načítání textu z CSV souboru, ve kterém jsou na každém řádku 3 řetězce oddělené znakem ';'.

Pomocí getline() načítám text do proměnné string radek dokud nenarazí na ';'.

Pak ukládám retezce do struktury Ukoly typu UKOL která má 3 atributy typu string.

Jenomže program spadne a nevím jak tomu zabránit.

#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <fstream>

using namespace std;

struct UKOL
{
    string zacatek;
    string konec;
    string popis;
};

int importCSV(UKOL *Ukoly,int &pocetUkolu);

int main()
{
    UKOL *Ukoly=NULL;
    int pocetUkolu=0;

    if(importCSV(Ukoly, pocetUkolu))
        cout << endl << "Nacteni ukolu problehlo uspesne." << endl;

    return 0;

}

int importCSV(UKOL *Ukoly,int &pocetUkolu){
    string nazev="ukoly.csv";

    string radek;
 

    ifstream vstup;

    vstup.open((const char *) nazev.c_str());

    if(!vstup.is_open())
    {
        cout << "Soubor se nepodarilo otevrit." << endl;
        Ukoly=NULL;
        return 0;
    }

while(!vstup.eof())
{
    getline(vstup,radek,';');

    if(radek.length()==0)
        break;

    if(pocetUkolu==0)
        Ukoly=(UKOL*)malloc(sizeof(UKOL)*(++pocetUkolu));
    else
        Ukoly=(UKOL*)realloc(Ukoly,sizeof(UKOL)*(++pocetUkolu));

    Ukoly[pocetUkolu-1].zacatek=radek;

    getline(vstup,radek,';');

    Ukoly[pocetUkolu-1].konec=radek;

    getline(vstup,radek,'\n');

    Ukoly[pocetUkolu-1].popis=radek;

}

    if(pocetUkolu==0)
    {
        cout << "Soubor je prazdny." << endl;
        vstup.close();
        return 0;
    }

    return 1;

}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý