Informatică, întrebare adresată de giosangeorge, 9 ani în urmă

Programul imi compileaza , dar nu stiu de ce imi da crash. P.S. am incercat sa sterg secventa cu strcpy()... si mergea.

#include <fstream>
#include <string.h>
using namespace std;
ifstream f("email.in");
ofstream g("email.out");

int main()
{
char domenii[1000][51];
unsigned short int i,j;
char adresa[51];
for(i=0;!f.eof();i++)
{
f.getline(adresa,51);
char *p=strchr(adresa,'@');
p++;
strcpy(domenii[i],p);
}
for(j=0;j<i;j++)
         g<<domenii[j]<<"\n";
 }


razvan16: care while?
giosangeorge: for**
giosangeorge: Citeste din fisier adrese de email si salveaza toate caracterele de dupa '@' intr-o matrice de caractere
razvan16: si de ce ai scris asa for(i=0;!f.eof();i++),cand trebuia sa scrii asa : while(!f.eof())
giosangeorge: 'i' reprezinta pozitia din matrice in care salvez sirul respectiv
giosangeorge: Chiar daca scriu cu while si declar i=0 inainte de loop si i++ in loop tot nu merge
razvan16: incer sa il rezolv acuma
razvan16: esti obligat sa folosesti matricea sau asa vrei tu?
giosangeorge: https://www.pbinfo.ro/?pagina=probleme&id=851 asta e linkul la problema
giosangeorge: Ai reusit ceva ?

Răspunsuri la întrebare

Răspuns de razvan16
1
int main()
{
    char adr[1000][200];
    char p[50];
    char *a;

    int k = 0;

    while (!f.eof())
    {
        f.getline(p, 51);
        a = strstr(p, "@") + 1;
        strcpy(adr[k],a);
        k++;
    }

for(int i=0;i<k;i++)
    g<<adr[i]<<"\n";
 dar nu e complet ,doar memoreaza in matricea adr,si afiseaza in fisier

giosangeorge: Multumesc mult, de aici ma descurc :D
giosangeorge: Tie iti compileaza ca mie tot nu :(
giosangeorge: Mai trebuia un f.get() dupa k++ ... si am stat f*cking 2 ore jumate pentru atata lucru :)))
razvan16: iti dadea eroare pt ca daca scri in email.in folosind programul codeblock cand salvezi iti adauga un spatiu in plus si tu incerci sa copiezi fiecare linie,si cand ajunge la ultima,care e goala va da eroare.Foloseste notepad++
Alte întrebări interesante