Skip to content

Commit dc151aa

Browse files
committed
update lab1.cpp
1 parent f17ad41 commit dc151aa

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Lab1CPP/lab1.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <cstdio>
22
#include <cstdlib>
33
#include <ctime>
4+
#include <stdexcept>
45
#include "array.h"
56

67
void qsort(Array *arr, size_t start, size_t end){
@@ -31,14 +32,14 @@ void qsort(Array *arr, size_t start, size_t end){
3132
Array *array_create_and_read(FILE *input)
3233
{
3334
int n;
34-
fscanf(input, "%d", &n);
35+
if (fscanf(input, "%d", &n) < 1) throw std::invalid_argument("Failed to read size");
3536
/* Create array */
3637
Array *arr = array_create(n);
3738
/* Read array data */
3839
for (int i = 0 ; i < n ; ++i)
3940
{
4041
int x;
41-
fscanf(input, "%d", &x);
42+
if (fscanf(input, "%d", &x) < 1) throw std::invalid_argument("Failed to read number");
4243
array_set(arr, i, x);
4344
}
4445
return arr;
@@ -48,7 +49,7 @@ void task1(void)
4849
{
4950
size_t n;
5051
Array *arr = NULL;
51-
scanf("%lu", &n);
52+
if (scanf("%lu", &n) < 1) throw std::runtime_error("Failed to read size");
5253
arr = array_create(n);
5354
for (size_t index{0}; index < n; ++index) array_set(arr, index, rand() % 100);
5455

@@ -65,7 +66,7 @@ void task2(void)
6566
{
6667
size_t size_arr;
6768
Array *arr = NULL;
68-
scanf("%lu", &size_arr);
69+
if (scanf("%lu", &size_arr) < 1) throw std::runtime_error("Failed to read size");
6970
arr = array_create(size_arr);
7071
for (size_t index{0}; index < size_arr; ++index) array_set(arr, index, rand() % 100);
7172
qsort(arr, 0, size_arr - 1);

0 commit comments

Comments
 (0)