При попытке взять некоторые аргументы для C. Мне было очень трудно получить argv[]
для работы. У меня есть:Почему я получаю исключение с плавающей запятой?
int main(int argc, char *argv[])
{
void updateNext();
void fcfs();
void spn();
void srt();
fp = fopen(argv[0],"r");
op = fopen("output.dat","a+");
if (strcmp(argv[1],"FCFS")!=0)
{
fcfs();
}
if (strcmp(argv[1],"SPN")!=0)
{
spn();
}
if (strcmp(argv[1],"SRT")!=0)
{
srt();
}
}
Я хотел бы ввести что-то в формате myprog input.data FCFS
, но приведенный выше код дает мне ошибку для «исключения точки поплавка» исключение исчезает после того, как я жесткий код input.dat
как строка в программа. Что-то не так с argv[0]
возможно?
Да. argv [0] обычно относится к скомпилированному двоичному myprog и никогда не содержит первый параметр командной строки. –
'strcmp (argv [1]," FCFS ")! = 0' - в соответствии с остальной частью вашего кода должно быть' strcmp (argv [1], "FCFS") == 0'. Поскольку 'strcmp' возвращает 0, если строки соответствуют – valdo