Форум программистов, компьютерный форум CyberForum.ru

Обработка параметров командной строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как переделать с cout, cin на printf, scanf??? http://www.cyberforum.ru/cpp-beginners/thread315875.html
#include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> const int n=30; class TRecord { public: int number; // общий идентификатор int nreis; // номер рейса
C++ Intellisence в Visual C++ Express 2008 Здравствуйте, вот такая вот проблема: работал раньше в Visual C# Express 2008 и привык к Intellisence, там он выскакивал сразу после нажатия любой клавиши, хочу научиться C++, поставил Visual C++ Express, а там такая подстава, что этот Intelsence работает совсем по другому и его никак не настроить. Может кто знает как сделать так, чтобы он заработал по нормальному (как в C#)? Да и вообще, почему... http://www.cyberforum.ru/cpp-beginners/thread315857.html
Вычисление корней диф. уравнения. C++
4. Составить подпрограмму-процедуру для вычисления корней x1,2=(-b+-(b^2-4ac)^(1/2))/2a (проще говоря это формула дискриминанта) уравнения ax^2+bx+c=0. Значения корней представить в виде комплексных чисел. Подпрограмму оформить в виде подпрограммы процедуры.
C++ Дана действительная матрица. Определить числа.
3. Дана действительная матрица размера mxn. Определить числа b1, ..., bm равные соотв. суммам элементов строк.
C++ Дано натуральное число. Получить действительные числа. http://www.cyberforum.ru/cpp-beginners/thread315843.html
2. Дано натуральное n, действительные числа a1, ..., an. Получить числа b1, ..., bn, которые связаны с a1, ..., an следующим образом: b1=a1; bn=an; bi=(ai+1-ai)/3; i=2, ..., n-1.
C++ Дано натуральное число. Определить число сотен. Дано натуральное n>90. Определить число сотен в нем. Срочно надо, буду очень благодарен. подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
09.06.2011, 19:33     Обработка параметров командной строки
Вот, параметры командной строки обрабатывает, абзацы в строки объединяет, но
пока без обработки ошибок.
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
#include <iostream>
#include <fstream>
#include <string>
 
bool default_in = true;
bool default_out = true;
 
int main(int argc, char *argv[])
{
    std::string 
        input_file_name,
        output_file_name;
 
    size_t i;
    for (i = 1; i < argc; ++i) {
        if ( (!strcmp(argv[i], "-i")) && (i+1 < argc) ) {
            input_file_name = argv[i+1];
            default_in = false;
        }
        if ( (!strcmp(argv[i], "-o")) && (i+1 < argc) ) {
            output_file_name = argv[i+1];
            default_out = false;
        }
    }
 
    std::ifstream fin;
    if (!default_in) {
        fin.open(input_file_name.c_str(), std::ios_base::in);
        if (!fin) {
            std::cerr << "Cannot open file \"" << input_file_name << "\".\n";
            return 1;
        }
    }
    std::ofstream fout;
    if (!default_out) {
        fout.open(output_file_name.c_str(), std::ios_base::out);
        if (!fout) {
            std::cerr << "Cannot open file \"" << output_file_name << "\".\n";
            return 1;
        }
    } 
    //------------------------------------------------------
    std::string buf, string;
 
    while ( std::getline((default_in ? std::cin : fin), buf) ) {
        if (buf[0] == ' ' || buf[0] == '\t' || buf.empty()) {
            (default_out ? std::cout : fout) << string << '\n';
            string.clear();
 
            if (buf[0] == ' ' || buf[0] == '\t') {
                do {
                    buf.erase(0, 1);
                } while (buf[0] == ' ' || buf[0] == '\t');
                if (buf.empty())
                    continue;
            } 
            else
                continue;
        }
        for (size_t offset = buf.length() - 1;
            (!buf.empty())
            && 
            (buf[offset] == ' ' || buf[offset] == '\t');
        --offset) 
        {
            buf.erase(offset, 1);
        }
        string += buf;
        string += ' ';
    }
    (default_out ? std::cout : fout) << string << std::endl;
    return 0;
}
 
Текущее время: 10:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru