#include <stdio.h>
#include <string.h>
int convert(char *str)
{
int i, number = 0;
for (i = 0; str[i] != '\0'; ++i) {
number = number * 10 + str[i] - '0';
}
return number;
}
int main(int argc, char *argv[])
{
int j;
int c = convert(argv[2]);
if (argc == 3) {
for (j = 0; j < c; j++) {
printf("Hello, %s!\n", argv[1]);
}
} else if (argc < 3) {
printf("Not Enough Arguments\n");
} else if (argc > 3) {
printf("Too Many Arguments\n");
}
return 0;
}
Fehler beim Segmentieren, wenn weniger als 3 Argumente angegeben werden. bei weniger als 3 Argumente sollte es "nicht genug Argumente" drucken, aber es gibt Fehlersegmentierungsfehler.c Befehlszeilenargumente
input: ./a raju
erwartete Ausgabe: not enough arguments
Die Verwendung von 'argv [2]' vor der Überprüfung ist eine schlechte Idee, denke ich ... Wirklich, können Sie nicht Ihren eigenen Code lesen (nicht von der verrückten Formatierung sprechen)? –