Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   СИ (https://forum.antichat.xyz/showthread.php?t=121382)

rubik-nerubik 19.05.2009 17:43

СИ++ (подправь код - получи аську)
 
Программа считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова
"ноль", "один",...,"девять", начиная каждое предложение с новой строки.

Код:

#include <iostream>
#include <fstream>
#include <string>
#include <clocale>
using namespace std;

int main(){
    setlocale(LC_CTYPE, "Russian"); // для русских букв
    ifstream file("text.txt"); // открываем файл text.txt
    string str;
    string num[10] = {"ноль","один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};
    getline( file, str, static_cast<char>(EOF)); // считываем текст из файла

    cout << str;
    for( char ch = '0'; ch <= '9'; ch++ ){
        string::size_type index = 0;
        while(( index = str.find( ch, index )) != string::npos ){
            str.replace( index, 1, num[ch-'0'] );
        }
    }
    cout << "\n\n\nResultat:\n\n" << str;

    cin.sync();
    cout << "\n\n\n Enter to exit\n\n";
    getchar(); // пауза
    return 0;
}

нашел в нете, кто поможет пордерактировать так, чтоб работало в Borland C 3.1., т.е. ничего лишнего, а это не работает. вот.

Gar|k 19.05.2009 19:24

ну во первых это Си++, а не Си
во вторых вот нашел учебник для 9 класса ) (http://kpolyakov.narod.ru/school/c.htm)

используй двумерный массив
char num[10][10] = {"ноль","один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};

а для замены сделай отделную переменную буффер (char buff[1024]) и туда способом strcat (ст 32 в учбенике) помещай результат замены хех...

ну а анализировать тебе надо будет каждый байт файлика...
читай ту книжку толково ;)

rubik-nerubik 19.05.2009 19:31

с меня семизначная аська, за выполненный полностью результат, тут тупо поменять, для знающего человека пустяк =(


+у меня одномерный массив а не двух

Gar|k 19.05.2009 20:04

в личку тебе отправил...

rubik-nerubik 19.05.2009 21:22

ты её проверял с файлом????? а то пишет тупо error

rubik-nerubik 19.05.2009 21:24

кстати, тут пипец у те всякие fopen ))))))можно по проще код? 0_0 и проверь его сразу там, в Borland c 3.1, семизнак будет!!! не ссы, мне главное что пахало всё.

вот три фотки примеров http://www.rapidshare.ru/1044772 мнеб так, т.е. по простому без заморочек...

Gar|k 19.05.2009 22:10

канешн с файлом... просто его надо положить в диру с программой )

в файле записано 3513624 и все...

Gar|k 19.05.2009 22:15

чувак в тех примерах не Си а Си++ - это разные языки
бороды Си 3,1 у мя в памине нет проверял на бороде Си++ 6,0 проект создавал как чистый Си консольный все пашет... файл нужно ложить в папку с прогой или указывать полный путь до него

rubik-nerubik 19.05.2009 22:17

Цитата:

Сообщение от Gar|k
чувак в тех примерах не Си а Си++ - это разные языки
бороды Си 3,1 у мя в памине нет проверял на бороде Си++ 6,0 проект создавал как чистый Си консольный все пашет... файл нужно ложить в папку с прогой или указывать полный путь до него

http://upload.com.ua/get/900318320/ тут качни. я наю что файл должен лежать рядом с исходником ^_^. )))

проверь на "Privet clovarb 1 2 3. Privet 2 3 4 9. Aga aga 1" этом и не забывай, что прога должна ещё все предложения с новой строки

Gar|k 19.05.2009 23:20

ушло в личку... а дал ссылку ты мне на бороду Си++ 3.1 )
я изначально думал тебе просто циферки преобразовать надо а те заменить надо ммм ) хех


Время: 21:11