Linux操作系统中的结果与Windows操作系统中的结果不同

问题描述 投票:0回答:1
void destroi_playlist_na_jukebox(jukebox j,char* resto)
{
    int i,k=1,musicas_numero;
    char nome_playlist[MAX_LINHA];
    playlist remove_playlist;

    i= sscanf(resto,"%[^\n^\r]",nome_playlist);


    if( (i==1) && (verifica_existe_playlist(j,nome_playlist) == 1) )
    {
        remove_playlist = (playlist)tira_playlist_jukebox(j,nome_playlist);
        musicas_numero = numero_musicas(remove_playlist);

        if( musicas_numero > 0 )
        {
            while( k <= musicas_numero )
            {
               remove_musica(remove_playlist,1);
               k++;
             }

        }
        destroiGenPlaylist( (void *) remove_playlist);
        printf("Playlist eliminada.\n");
    }
    else
       if( (verifica_existe_playlist(j,nome_playlist) !=1) && (i==1) ) // Problem is here
       {
           printf("Playlist inexistente.\n");
       }
           else printf("Dados invalidos.\n");
 }

问题出在最后的if语句中。我得到resto,它不遵循第一个if语句,转到第二个,那里一切都很好,但是问题是我的计算机(有Windows操作系统)出于某种原因在我的大学编译器上打印了“ Dados invalidos”(基于linux操作系统),它会显示“播放列表不存在”。发生了什么事,我该如何解决?正确的答案是计算机上打印的内容。

c linux windows
1个回答
2
投票

您正在检查\r\n,这是Windows行结尾。 Linux / UNIX行尾仅是\n。因此,您可以先检查正在使用的系统,然后查看如何进行操作,或者可以搜索自动检查该功能的功能。

© www.soinside.com 2019 - 2024. All rights reserved.