fix problem when invalid data is passed via stdin
This commit is contained in:
parent
a6731de4cd
commit
d9aab389a1
10
src/sort.c
10
src/sort.c
@ -179,12 +179,12 @@ int main (int argc, char **argv) {
|
|||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
if (elegir) {
|
if (elegir) {
|
||||||
opt = 0;
|
opt = 0;
|
||||||
while (opt <= 1) {
|
fprintf(stdout, "Elegir elemento %lli: ", i + 1);
|
||||||
|
while (!fscanf(stdin, "%d", &opt)) {
|
||||||
|
// Falló, pide de nuevo después de limpiar stdin
|
||||||
|
while ((opt = getchar()) != '\n' && opt != EOF) { }
|
||||||
|
fprintf(stdout, "Número invalido! Tiene que ser mayor de 1!\n");
|
||||||
fprintf(stdout, "Elegir elemento %lli: ", i + 1);
|
fprintf(stdout, "Elegir elemento %lli: ", i + 1);
|
||||||
fscanf(stdin, "%d", &opt);
|
|
||||||
if (opt <= 1) {
|
|
||||||
fprintf(stdout, "Número invalido! Tiene que ser mayor de 1!\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
array[i] = opt;
|
array[i] = opt;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user