Segmentation fault when reading file in C












0















I'm trying to read from a file. My program reads the first line correctly, but at the second line I get a segmentation fault and I have no idea why that is.



Here's my code (sorry it's in Hungarian) :



FILE *fp = fopen (fajlnev, "r");
if (fp == NULL) {
perror("Fájl megnyitása sikertelen");
return;
}
char tmp [21];
strcpy(tmp,nev);
strcpy(pj->nev,"");
char buf1, buf2, buf3;
fscanf(fp, "%c%c%c", &buf1, &buf2, &buf3);
while (strcmp(pj->nev, tmp)!=0 ) {
fscanf(fp, "%s %d %dn", pj->nev, &(pj->meret), &(pj->pontszam));

for(int i=0; i<pj->meret; i++) {
for(int k=0; k<pj->meret; k++) {
fscanf(fp, "%u", &(pj->foldek[i][k].n));
fscanf(fp, "%d", &(pj->foldek[i][k].allapot));
fscanf(fp, "%ld", (long *)&(pj->foldek[i][k].ido));
printf("hiba");

}
}
fscanf(fp, "n");
}


pj->foldek[i][j].n is an enumerated type, allapot is an integer and ido is time_t



I'd be really grateful if you could help me! :)










share|improve this question

























  • Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

    – Krassi Em
    Dec 1 '18 at 17:41
















0















I'm trying to read from a file. My program reads the first line correctly, but at the second line I get a segmentation fault and I have no idea why that is.



Here's my code (sorry it's in Hungarian) :



FILE *fp = fopen (fajlnev, "r");
if (fp == NULL) {
perror("Fájl megnyitása sikertelen");
return;
}
char tmp [21];
strcpy(tmp,nev);
strcpy(pj->nev,"");
char buf1, buf2, buf3;
fscanf(fp, "%c%c%c", &buf1, &buf2, &buf3);
while (strcmp(pj->nev, tmp)!=0 ) {
fscanf(fp, "%s %d %dn", pj->nev, &(pj->meret), &(pj->pontszam));

for(int i=0; i<pj->meret; i++) {
for(int k=0; k<pj->meret; k++) {
fscanf(fp, "%u", &(pj->foldek[i][k].n));
fscanf(fp, "%d", &(pj->foldek[i][k].allapot));
fscanf(fp, "%ld", (long *)&(pj->foldek[i][k].ido));
printf("hiba");

}
}
fscanf(fp, "n");
}


pj->foldek[i][j].n is an enumerated type, allapot is an integer and ido is time_t



I'd be really grateful if you could help me! :)










share|improve this question

























  • Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

    – Krassi Em
    Dec 1 '18 at 17:41














0












0








0








I'm trying to read from a file. My program reads the first line correctly, but at the second line I get a segmentation fault and I have no idea why that is.



Here's my code (sorry it's in Hungarian) :



FILE *fp = fopen (fajlnev, "r");
if (fp == NULL) {
perror("Fájl megnyitása sikertelen");
return;
}
char tmp [21];
strcpy(tmp,nev);
strcpy(pj->nev,"");
char buf1, buf2, buf3;
fscanf(fp, "%c%c%c", &buf1, &buf2, &buf3);
while (strcmp(pj->nev, tmp)!=0 ) {
fscanf(fp, "%s %d %dn", pj->nev, &(pj->meret), &(pj->pontszam));

for(int i=0; i<pj->meret; i++) {
for(int k=0; k<pj->meret; k++) {
fscanf(fp, "%u", &(pj->foldek[i][k].n));
fscanf(fp, "%d", &(pj->foldek[i][k].allapot));
fscanf(fp, "%ld", (long *)&(pj->foldek[i][k].ido));
printf("hiba");

}
}
fscanf(fp, "n");
}


pj->foldek[i][j].n is an enumerated type, allapot is an integer and ido is time_t



I'd be really grateful if you could help me! :)










share|improve this question
















I'm trying to read from a file. My program reads the first line correctly, but at the second line I get a segmentation fault and I have no idea why that is.



Here's my code (sorry it's in Hungarian) :



FILE *fp = fopen (fajlnev, "r");
if (fp == NULL) {
perror("Fájl megnyitása sikertelen");
return;
}
char tmp [21];
strcpy(tmp,nev);
strcpy(pj->nev,"");
char buf1, buf2, buf3;
fscanf(fp, "%c%c%c", &buf1, &buf2, &buf3);
while (strcmp(pj->nev, tmp)!=0 ) {
fscanf(fp, "%s %d %dn", pj->nev, &(pj->meret), &(pj->pontszam));

for(int i=0; i<pj->meret; i++) {
for(int k=0; k<pj->meret; k++) {
fscanf(fp, "%u", &(pj->foldek[i][k].n));
fscanf(fp, "%d", &(pj->foldek[i][k].allapot));
fscanf(fp, "%ld", (long *)&(pj->foldek[i][k].ido));
printf("hiba");

}
}
fscanf(fp, "n");
}


pj->foldek[i][j].n is an enumerated type, allapot is an integer and ido is time_t



I'd be really grateful if you could help me! :)







file segmentation-fault scanf






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 9:58









common sense

2,54841625




2,54841625










asked Nov 24 '18 at 8:39









PetraPetra

11




11













  • Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

    – Krassi Em
    Dec 1 '18 at 17:41



















  • Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

    – Krassi Em
    Dec 1 '18 at 17:41

















Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

– Krassi Em
Dec 1 '18 at 17:41





Hi Petra, you are not using any debugger obviously, but there's something easy to do. Try to replace the two strcpy calls strcpy(tmp,nev); strcpy(pj->nev,""); with memcpy or with strncpy calls and see if you can fix it this way.

– Krassi Em
Dec 1 '18 at 17:41












1 Answer
1






active

oldest

votes


















0














Please alter the while loop:
while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53456550%2fsegmentation-fault-when-reading-file-in-c%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Please alter the while loop:
    while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )






    share|improve this answer




























      0














      Please alter the while loop:
      while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )






      share|improve this answer


























        0












        0








        0







        Please alter the while loop:
        while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )






        share|improve this answer













        Please alter the while loop:
        while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 1 '18 at 17:46









        Krassi EmKrassi Em

        1667




        1667
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53456550%2fsegmentation-fault-when-reading-file-in-c%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            TypeError: fit_transform() missing 1 required positional argument: 'X'