편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.03.24

    fgets 개행 없애기 질문


    FILE*f = NULL;
        f = fopen("input.txt", "r");
        char what;
        int ID;
        char name[30];
        while (!feof(f)) {
            fscanf(f, "%c", &what);
            if (feof(f)) break;
            if (what == 'i') {
                fscanf(f, "%d", &ID);
                fgets(name, 30, f);
                name[strlen(name) - 1]='\0';  // ------>
    

    fgets 때문에 개행이 생기는걸 제거하기 위해서 저렇게 해야한다길래 해줬어요.

    visual studio 에서는 제대로 개행이 제거되는데 ubuntu에서는 저 줄때문에 뒤에 출력해야할 것이 없져버려요. 저줄을 지우지 않으면 출력되어야 하는건 다 출력이 되는데 대신 개행이 다시 생깁니다. 도와주세요.

    ubuntu에서는 name[strlen(name) - 1]='\0'; 이런식으로 개행을 제거하면 안되는건가요?

  • 프로필 이주은님의 편집
    날짜2020.03.24

    fgets 개행 없애기 질문


    FILE*f = NULL; f = fopen("input.txt", "r"); char what; int ID; char name[30]; while (!feof(f)) { fscanf(f, "%c", &what); if (feof(f)) break; if (what == 'i') { fscanf(f, "%d", &ID); fgets(name, 30, f); name[strlen(name) - 1]='\0'; ------>

    fgets 때문에 개행이 생기는걸 제거하기 위해서 저렇게 해야한다길래 해줬어요 visual studio 에서는 제대로 개행이 제거되는데 ubunto에서는 저 줄때문에 뒤에 출력해야할 것이 없져버려요 ㅜㅜ 저줄을 지우지 않으면 출력되어야 하는건 다 출력이 되는데 대신 개행이 다시 생깁니다ㅜㅜ 도와주세요 ubunto에서는 name[strlen(name) - 1]='\0'; 이런식으로 개행을 제거하면 안되는건가요