сбой моей программы на С по невидимой причине - PullRequest
0 голосов
/ 11 апреля 2019

Итак, моя программа должна быть маленькой командной строкой, но она продолжает падать:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>    

void main()
{    
    char cmd;
    for(;;)
    {
        fgets(cmd,255,stdin);
        if (strstr(cmd,"CD")!=NULL )
        {
            cmd +=2;
            SetCurrentDirectory(cmd);
        }
        else
        {
            system(cmd);
        }
    }
}

ожидаемый вывод компилятора.

1 Ответ

1 голос
/ 11 апреля 2019

Может быть, вы хотите сделать что-то вроде этого:

void main()
{    
    char cmd[255]; // this allocate a character array to store the command in
    for(;;)
    {
        fgets(cmd,255,stdin); // get the characters from stdin and store them in the cmd character array with a max length of 255
        if ( strncmp(cmd, "CD ", 3) == 0 ) // check if the first three characters are "CD "
        {
            SetCurrentDirectory(&cmd[3]); // pass the string not including the first 3 charcters, which should be "CD "
        }
        else
        {
            system(cmd);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...