#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
FILE *fp;
char flag;
char put[20];
if((fp=fopen("MYFILE.txt","w"))==NULL)
{
puts("Cant open the file");
system("pause");
exit(0);
}
flag='y';
while(flag!='N' && flag!='n')
{
try
{
puts("Enter path to the file");
gets(put);
if ((((put[strlen(put)-4]!='.') && (put[strlen(put)-5]!='.')) || (put[1]!=':') || (put[2]!='\\')))
throw "Wrong Path to the file";
}
catch (const char *s)
{
std::cout << s << std::endl;
continue;
}
fputs(put,fp);
fputs("\n",fp);
puts("Continue?");
flag=getchar();
getchar();
putchar('\n');
}
fclose(fp);
system("pause");
return EXIT_SUCCESS;
}
Обработка исключительных ситуаций (в чем ошибка?)
Пишу вот программу для проверки правильности ввода пути к файлу
то есть на наличие : / . Использую Dev-C++
Вроде как получилось, если ввод не правильный то ошибку пишет, но есть сомнения что что-то все таки напортачил...
Подскажите пожалуйста, правильно ли все тут? Задание было решить эту проблему с помощью блока try-catch. Только я не совсем понял использование блока catch(
Код:
А по поводу исключений, - если вынести код проверки правильности введённой строки в отдельную функцию, и там бросать исключение, а перехватывать его в месте вызова этой функции, то это будет более правильно. Потому что в нынешнем виде это как бы не имеет смысла, имхо.