Форум программистов, компьютерный форум, киберфорум
Наши страницы

Процедура разбора полного пути к файлу, представленного строкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ фибоначчи http://www.cyberforum.ru/cpp-beginners/thread964059.html
написать программу которая вычисляет столбцом числа фибоначчи
C++ Создание матрицы графическим способом Здравствуйте. Для одной программы мне необходимо создать и заполнить матрицу произвольной размерности, которая выбирается пользователем в процессе выполнения. Ничего сложного, однако мне поставили... http://www.cyberforum.ru/cpp-beginners/thread964036.html
C++ тип bool ошибка обработки
при вводе любого значения отличного от 0 или 1 тело в условии выполняется, т.е. введённое число 100 в type генерирует исключение: bool type; cin>>type; if(type!=0 && type!=1 || !cin.good()) ...
Постоянная ошибка C++
Здравствуйте. Пишу программу по расчёту мин. кол-ва банкнот и монет для набора суммы. При целых суммах всё нормально, но при вводе суммы с дробной части у 10-долларовой банкноты(почему-то только у...
C++ Запихнуть в vector<int>, char? http://www.cyberforum.ru/cpp-beginners/thread963982.html
Всем доброго времени суток! Вот решил написать программу, которая переводила бы число из десятичной системы счисления в шеснадцатиричную систему. Столкнулся с проблемой. Т.к. в шеснадцатиричной...
C++ Как вывести функцию? Занимаюсь по ученику Прата С. не могу выполнить упражнение: Напишите программу, которая выдает запрос на ввод значений часов и минут. Функция main () должна передать эти два значения функции,... подробнее

Показать сообщение отдельно
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94

Процедура разбора полного пути к файлу, представленного строкой - C++

28.09.2013, 09:00. Просмотров 810. Ответов 9
Метки (Все метки)

Разработать процедуру (и вспомогательную программу) разбора заданной текстовой строки (задается переменной окружения или параметром командной строки), содержащей полное имя файла (путь и имя). Процедура должна определять четыре параметра окружения - буква диска, путь, имя файла и тип файла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
 
int main(int argc, char* argv[])
 
{setlocale(LC_ALL,"Russia");
    
int i=0,is,ik;
 
FILE *fp;
 
       system("cls");
 
       if (argc!=2)
 
       {
 
        cout << "OSHIBKA PARAMETRA!!!";
        
         getchar();
        return 0;
 
       }
 
        fp=fopen(argv[1],"r");
 
        if (fp==NULL)
 
             {
 
             cout << "Oshibka!!! Fail s takim imenem ne suchestvuet!!!";
             getchar();
             return 0;
 
           }
 
        fclose(fp);
 
       while (argv[1][i]!=0)
 
       {
 
             if (argv[1][i]==':')       //находим двоеточие и выделяем название диска
 
             {
 
              cout << "DISK - " << argv[1][i-1] << argv[1][i] << '\n';
 
              break;
 
             }
 
       i++;
 
       }
 
       i++;
 
       is=i;     //здесь храним позицию первого слеша
 
              while (argv[1][i]!=0)
 
             {
 
                    if (argv[1][i]=='\\')
 
                    {
 
                           ik=i;   //находим последний слеш и выделяем путь к файлу
 
                    }
 
                    i++;
 
             }
 
             cout << "Put' - ";
 
                    for (is;is<=ik;is++)      
 
                                  {
 
                                   cout << argv[1][is];
 
                                  }
 
             cout << "\n" << "Imya faila - ";
 
             is=ik+1;
 
             while (argv[1][ik]!=0)
 
             {
 
                    if (argv[1][ik]=='.') //находим крайнюю точку и выделяем имя файла
 
                           {
 
                           i=ik;
 
                           }
 
              ik++;
 
             }
 
                    for (is;is<i;is++) //все остальное после крайней точки - тип файла
 
                                  {
 
                                   cout << argv[1][is];
 
                                 }
 
                    cout << "\n" << "Tip faila - ";
 
                    for (is;is<ik;is++)
 
                                  {
 
                                   cout << argv[1][is];
 
                                  }
 
return 0;}
Программа выдает OSHIBKA PARAMETRA!!! Почему так?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.