Вот минимальный пример с полными, правильными сообщениями об ошибках и диагностическими сообщениями. Обратите внимание, что настройка errno
на 0 необходима для различения ошибок диапазона от действительных выходов strtoul()
, это раздражающая причуда функции.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main(int argc, char *argv[])
{
if (argc != 2) {
fputs("usage: test NTHREAD\n", stderr);
exit(1);
}
char *e;
errno = 0;
unsigned long nthread = strtoul(argv[1], &e, 0);
if (!*argv[1] || *e) {
fputs("error: invalid NTHREAD\n", stderr);
exit(1);
}
if (nthread == (unsigned long) -1 && errno == ERANGE) {
fputs("error: NTHREAD out of range\n", stderr);
exit(1);
}
// Your code goes here
}
В этом случае 2 передается в качестве аргумента программе. Попробуйте найти информацию о обработке аргументов в программе на C. – JaredPar
У меня есть идея для вас - прочитайте хотя бы какую-нибудь книгу по программированию на языке C ... – 2013-03-08 22:18:22
Я пробовал argv [0], но он не может читать «2» –