ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 21.05.2009, 21:22
Аватар для Gar|k
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

он юзает команды strlen, strtok они нафиг не нужны ) зачем разбитвать строку на слова?
встретил цифру заменил ) встретил точку поставил перенос строки... все

fseek(f, 0, SEEK_END);
buflen = ftell(f);
rewind(f);

определяем скока байт файл занимает

buffer = (unsigned char * ) malloc(buflen); выделяем памяти под весь файл и туда считываем файл все... терь файл в памяти

побайтово движемся по памяти - файлу. если точка ставим перенос строки
если не точка

преобразовываем в цифру если от нуля до 9 то вместо этого пишем слово из массива num а если не цифра просто печатаем этот символ ) усе...

но я думаю можно круче сделать если напрямую указатель прибавлять ) тогда si не понадобится + можно еще несколько переменных убрать а то че они лишние хех
 
Ответить с цитированием

  #22  
Старый 21.05.2009, 21:29
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

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

вооо пашет, вот тока бы чтоб каждое предложение с новой строки, это видимо, если находит точку, то перескакивает на новую строку походу...
 
Ответить с цитированием

  #23  
Старый 21.05.2009, 21:47
Аватар для rudvil
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

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

Некрасиво конечно, но проще уже точно некуда
Код:
#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;
}
 
Ответить с цитированием

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

Репутация: 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 ...=\ писал же ..((
 
Ответить с цитированием

  #25  
Старый 22.05.2009, 10:53
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

И нравится вам юзать компилер, которому 20 лет и который не поддерживает современный C++.
Купи нетбук и поставь нормальную IDE, либо на флешку Code::Blocks запиши, он без установки пашет.
 
Ответить с цитированием

  #26  
Старый 22.05.2009, 11:37
Аватар для Gar|k
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

2 nerezus
у чувака криворукие у него даж норманый рабочий исходник на Си не пашет

потом тему завел Си... а на самом деле ему нужна прога на Си++
в общем ппц
 
Ответить с цитированием

  #27  
Старый 23.05.2009, 10:09
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

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

PHP код:
 #include<conio.h> 
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
#define fname "inpt.txt" 
void print_wrd(char *); 
void main() 

clrscr(); 
char *cfr[]={"HOJIb","oDbIH","DBa","Tpu","4eTbIpu","n9Tb""6ecTb","CeMb","BoceMb","DeB9Tb"}; 
FILE *fPtr
char *str[20],*wrd[30]; 
int i=0,j=0,n,c
if((
fPtr=fopen(fname"rt"))==NULL){ 
   
printf("File could not be open =(\n"); 
   
getch(); 
   return; 
   } 
else{ 
   
fgets(str[i],50,fPtr); 
   
//printf("%s",str[i]); 
   
while(!feof(fPtr)){ 
       
i++; 
       
fgets(str[i],50,fPtr); 
       
//printf("%s",str[i]); 
       

   
fclose(fPtr); 
   } 
for(
int k=0k<=ik++){ 
   
n=strlen(str[k]); 
   for(
j=0j<=nj++){ 
      
c=str[k][j]; 
      if(
c>='0'&&c<='9'
         
printf(" %s",cfr[c-48]); 
      else 
         
printf("%c",c); 
      } 
   
printf("\n"); 
   } 
getch(); 

кто может его подправить чтобы КАЖДОЕ предложение,9т.е. если найдётся точка, выводилось с новой строки

счас выводит из получаемого
TExt 1 2. TExt 2 3. 3 3
получает
Text odin dva. TExt dva tri. tri tri

а надо именно

Text odin dva.
TExt dva tri.
tri tri
вот. автор вышеперечисленного кода получит семизнак, как тока установлю на компе винду =\ а тот кто исправит тоже. че я жадина чтоли
 
Ответить с цитированием

  #28  
Старый 23.05.2009, 11:56
Аватар для 043nKRuT0y
043nKRuT0y
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме:
394522

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

По моему самый простой вариант перехода на новую строку ето в цыкле вставить проверку :
Код:
if ( str[k] == '.' )cout<<endl;
При такой проверке как только встретится точка курсор прыгнет на новую строку !

Да и вообще код какойто масивный для даного задания .... можно и попроще )

Я в разделе "Студентам с лабами" сделал ето заданице ))) Для проверку на точку в тот код просто вставь :
Код:
case '.' :
              cout<<endl;
              break;
 
Ответить с цитированием

  #29  
Старый 23.05.2009, 18:49
Аватар для Sn@k3
Sn@k3
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме:
5151669

Репутация: 1198


Отправить сообщение для Sn@k3 с помощью ICQ
По умолчанию

про переход на новую строку. пихни в #27
Код:
...................
c=str[k][j];  c1=str[k][j-1];


	 switch(c1) { case '.': printf("\n"); break;   }


      if(c>='0'&&c<='9') {
..............
ну и c1 задай.. вроде похоже на правду.
 
Ответить с цитированием

  #30  
Старый 26.05.2009, 13:42
Аватар для fker
fker
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме:
2816163

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

интересно ТС сдержал свое слово... Кому отправилась семерка?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ