сообщение об ошибке
От: oleksandr_kolesnyk Германия  
Дата: 13.03.07 13:43
Оценка:
Привет,всем!

Вот никак не могу одну маленькую проблемку решить, а именно:
при запуске программы должно быть следующие сообщение об ошибке-пользователь ввёл вместо слова ( 5-ый аргумент FileName) цыфры, нужно сообщить ему об этом.

Я в принципе уже получил подсказку на форуме давно, вот только всё ето время никак не доходили руки-много дел инного плана было, поэтому прошу ещё раз помочь. Заранее благодарен.


#include <iostream>
#include <ctype.h>
#include <stdio.h>

using namespace std;

int main(int argc , char *argv[] )
 {
   char*  FileName[256];
   double rohr_radius;
   double rohr_laenge;
   double punkte_abstand;    
   double schnitt_hoehe;
     
   if( argc-1 == 5)
     {
       rohr_radius    = atof ( argv[1] );
       rohr_laenge    = atof ( argv[2] );
       punkte_abstand = atof ( argv[3] );
       schnitt_hoehe  = atof ( argv[4] );
       FileName[256]       = argv[5];
     }
   
   if ( rohr_radius<=0 || rohr_laenge<=0 || punkte_abstand<=0 ||  schnitt_hoehe<=0)
     {
       cout << "\n Falsch! Nocheinmal ";
       exit(1);
     }

   int i=0;
   while (FileName[i])
     {
       if (isalpha(FileName[i])) printf ("character %c is alphabetic\n",FileName[i]);
       else printf ("character %c is not alphabetic\n",FileName[i]);
       i++;
     }

   cout << "\n Radius = " << rohr_radius << "\n";
   cout << "\n Laenge = " << rohr_laenge << "\n";
   cout << "\n Abstand = " << punkte_abstand << "\n";
   cout << "\n Schnitthoehe = " << schnitt_hoehe << "\n";
   cout << "\n Namen fuer den File, in dem Verbindungen  gespeichert werden: " << FileName << "\n";

   
   return 0 ;
 }
Re: сообщение об ошибке
От: Sashaka Россия  
Дата: 13.03.07 14:13
Оценка:
А почему нельзя в имени файла задать только цифры?

По моему логично проверять на запрещенные для имен файла символы =)

А еще проще — попробовать создать файл с таким именем и посмотреть что вернет функция создания файла, если ошибка — значит задано неверное имя.
Re[2]: сообщение об ошибке
От: Кодт Россия  
Дата: 14.03.07 08:06
Оценка:
Здравствуйте, Sashaka, Вы писали:

S>А еще проще — попробовать создать файл с таким именем и посмотреть что вернет функция создания файла, если ошибка — значит задано неверное имя.


Это не просто проще, но ещё и правильнее. Потому что ошибка может быть не только в синтаксисе, но и в доступности этого пути (наличие каталога, прав пользователя...)
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: сообщение об ошибке
От: Аноним  
Дата: 14.03.07 11:34
Оценка:
Здравствуйте, Sashaka, Вы писали:

S>А почему нельзя в имени файла задать только цифры?


S>По моему логично проверять на запрещенные для имен файла символы =)


S>А еще проще — попробовать создать файл с таким именем и посмотреть что вернет функция создания файла, если ошибка — значит задано неверное имя.


Мой руководитель хочет чтобы для имен фаилов исползовались исключительно слова
Re[2]: сообщение об ошибке
От: oleksandr_kolesnyk Германия  
Дата: 14.03.07 11:44
Оценка:
Здравствуйте, Sashaka, Вы писали:

S>А почему нельзя в имени файла задать только цифры?


S>По моему логично проверять на запрещенные для имен файла символы =)


S>А еще проще — попробовать создать файл с таким именем и посмотреть что вернет функция создания файла, если ошибка — значит задано неверное имя.


Мой руководитель хочет чтобы для имен фаилов исползовались исключительно слова
Re[3]: сообщение об ошибке
От: Sashaka Россия  
Дата: 15.03.07 22:16
Оценка:
Здравствуйте, oleksandr_kolesnyk, Вы писали:


_>Мой руководитель хочет чтобы для имен фаилов исползовались исключительно слова


ну тогда что то типа того:

   
   while (FileName[i++])
     {
       if (!isalpha(FileName[i])) //или if (isdigit(Filename[i]))
       {
           printf ("Character %c in %s is not alphabetic\n",FileName[i],Filename);
           return 0;
       }
     }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.