Тема: СИ
Показать сообщение отдельно

  #24  
Старый 21.05.2009, 22:02
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами: 10011945

Репутация: 33
По умолчанию

Цитата:
Сообщение от rudvil  
Некрасиво конечно, но проще уже точно некуда
Код:
#include <iostream>
#include <fstream>
#include <ctype.h>
#include <string>
using namespace std;

int main () {
    string line;
    string filename;
    cout << "Vvedite imja/putj fajla\n";
    cin >> filename;
    ifstream file(filename.c_str());
    if (file.is_open()) {
        while (!file.eof()) {
            getline(file, line);
            for (int i = 0; i < line.length(); i++ ) {
                if (isdigit(line.at(i))) { // vidim cifru, vivodim ee
                    switch (atoi(line.substr(i, 1).c_str())) {
                        case 0:
                            cout << "NOLJ";
                            break;
                        case 1:
                            cout << "ADZIN";
                            break;
                        case 2:
                            cout << "DVA";
                            break;
                        case 3:
                            cout << "TRI";
                            break;
                        case 4:
                            cout << "CETIRE";
                            break;
                        case 5:
                            cout << "PJATJ";
                            break;
                        case 6:
                            cout << "SSESTJ";
                            break;
                        case 7:
                            cout << "SEMJ";
                            break;
                        case 8:
                            cout << "VOSEMJ";
                            break;
                        case 9:
                            cout << "DEVATJ";
                            break;
                    }
                }
                else if (line.at(i) == 46) { // vidim tochku t.e. konec stroki vivodim ee i novuju stroku
                    cout << line.at(i) << endl;
                }
                else { // vivodim vso ostalnoje
                    cout << line.at(i);
                }
            }
        }
        file.close();
    }
    else {
        cout << "Oshibka pri otkritii fajla " << filename << endl;
    }
    return 0;
}
НАДО ДЛЯ Borland C++ 3.1 а не 6.0 ...=\ писал же ..((
 
Ответить с цитированием