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

Макросы - C++

Восстановить пароль Регистрация
 
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
19.02.2012, 15:07     Макросы #1
Здравствуйте, сделал программу, а мне еще сказали нужно сделать её с использованием макросов, знаю что это не долго и всё, не мог бы кто-нибудь помочь? Умоляю, вот мой код программы
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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <cstring>
#include <stdio.h>
#include <fstream>
#include <string>
using namespace std;
 
 
 
int main()
{   setlocale(LC_ALL, "rus");
    
    char str[109];
    FILE *in = fopen ("D:\\123.txt","r");
    if ((in==NULL)) 
    puts("Вышла ошибка при открытии файла, дамы и господа!");
     else
       {    
         cout<<"Прошло успешное открытие файла\n \n \n";
         while(!feof(in))
                {fgets(str,109,in);
                  puts(str);
                }
       }
cout<<"\n";
    std::ifstream ifs("123.txt");
    if(ifs)
    {       std::string s;
            while(std::getline(ifs, s, '\"').good())
            {
                if(std::getline(ifs, s, '\"').good())
                {
                std::cout<< "Цытата: " << s << std::endl;
                }
 
            }
        }
            else std::cerr << "Can't open file\n";
            ifs.close();
            
            
        std::string strr;
        std::ifstream ifg("123.txt");
        std::getline(ifg, strr);
  
 
            //Переменная типа string для хранения минимального слова
 string min_word = strr;
 //Переменная типа string для хранения текущего слова
 string word;
 
 //Выводим исходную строку
 cout << "Исходная строка:" << endl << strr << endl << endl;
 
 //Переменные для границ текущего слова
 string::size_type beg = 0;
 string::size_type end = 0;
 
 //Пока находим символы в строке следующие за пробелом отличные от пробела
 while((beg = strr.find_first_not_of(' ',beg )) != string::npos) 
 {
 
  //Находим первый пробел за словом
  end = strr.find_first_of(' ',end );
 
  //Если это конец строки
  if(end == string::npos)
   {//То присваиваем переменной end значение длины строки
   end = strr.length();
 
  //Извлекаем слово из строки
  
    }word = strr.substr(beg, end - beg);
 
  //Если длина текущего слова меньше минимального
  if(word.length() < min_word.length())
    {//Новое минимальное слово
    min_word = word;
    }
 }
 
 //Выводим результат работы
 cout << "Минимальное слово в строке:" << min_word << endl;
 cout << "Его длина: " << min_word.length() << endl;
 
    system("pause");    fclose(in);     
    return 0;
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 15:07     Макросы
Посмотрите здесь:

Макросы C++
макросы C++
C++ Макросы
C++ макросы
C++ Предопределённые макросы
Макросы в С++ C++
C++ макросы
C++ Шаблоны и Макросы С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.02.2012, 15:15     Макросы #2
НУ и требование. В этой программе трудно представить себе использовние макросов, чтобы это использование было естественным. Придется вводить говномакросы.
Вот могу предложить макрос для печати просто строки:
C++
1
2
3
4
5
6
7
#define PRINT(msg) put((msg))
 
 
 // а в коде вместо
 puts("Вышла ошибка при открытии файла, дамы и господа!");
 // написать
 PRINT("Вышла ошибка при открытии файла, дамы и господа!");
Yandex
Объявления
19.02.2012, 15:15     Макросы
Ответ Создать тему
Опции темы

Текущее время: 08:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru