negtab

inputArrayFromFile C++

Nov 11th, 2024
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. int* inputIntArrayFromFile(wstring pathToFile, int min, int max, int size)
  2. {
  3. bool isInCorrect = false;
  4. int* array = new int[size];
  5. string nullElement = " ";
  6. ifstream inputFile(pathToFile);
  7.  
  8. inputFile >> nullElement;
  9. for(int i = 0; i < size; i++)
  10. {
  11. if(inputFile.eof())
  12. {
  13. do {
  14. cout << "В файле не хватает элементов, ведите элемент номер " << i + 1 << " от " << min << " до " << max << ": ";
  15. isInCorrect = false;
  16. cin >> array[i];
  17. if (cin.fail() || array[i] < min || array[i] > max)
  18. {
  19. isInCorrect = true;
  20. cin.clear();
  21. while (cin.get() != '\n');
  22. cout << "Неверный ввод" << endl;
  23. }
  24. } while (isInCorrect);
  25. }
  26. else
  27. {
  28. isInCorrect = false;
  29. inputFile >> nullElement;
  30.  
  31. try
  32. {
  33. array[i] = stoi(nullElement);
  34. }
  35. catch(const invalid_argument&)
  36. {
  37. isInCorrect = true;
  38. }
  39. if (array[i] < min || array[i] > max)
  40. {
  41. isInCorrect = true;
  42.  
  43. }
  44. if (isInCorrect)
  45. {
  46. do {
  47. cout << "В файле не верно введен элемент " << i + 1 << ", введите его с клавиатуры от " << min << " до " << max << ": ";
  48. isInCorrect = false;
  49. cin >> array[i];
  50. if (cin.fail() || array[i] < min || array[i] > max)
  51. {
  52. isInCorrect = true;
  53. cin.clear();
  54. while (cin.get() != '\n');
  55. cout << "Неверный ввод" << endl;
  56. }
  57. } while (isInCorrect);
  58. }
  59. }
  60. }
  61. return array;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment