он юзает команды strlen, strtok они нафиг не нужны ) зачем разбитвать строку на слова? встретил цифру заменил ) встретил точку поставил перенос строки... все fseek(f, 0, SEEK_END); buflen = ftell(f); rewind(f); определяем скока байт файл занимает buffer = (unsigned char * ) malloc(buflen); выделяем памяти под весь файл и туда считываем файл все... терь файл в памяти побайтово движемся по памяти - файлу. если точка ставим перенос строки если не точка преобразовываем в цифру если от нуля до 9 то вместо этого пишем слово из массива num а если не цифра просто печатаем этот символ ) усе... но я думаю можно круче сделать если напрямую указатель прибавлять ) тогда si не понадобится + можно еще несколько переменных убрать а то че они лишние хех
вооо пашет, вот тока бы чтоб каждое предложение с новой строки, это видимо, если находит точку, то перескакивает на новую строку походу...
Некрасиво конечно, но проще уже точно некуда Code: #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; }
И нравится вам юзать компилер, которому 20 лет и который не поддерживает современный C++. Купи нетбук и поставь нормальную IDE, либо на флешку Code::Blocks запиши, он без установки пашет.
2 nerezus у чувака криворукие у него даж норманый рабочий исходник на Си не пашет потом тему завел Си... а на самом деле ему нужна прога на Си++ в общем ппц
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=0; k<=i; k++){ n=strlen(str[k]); for(j=0; j<=n; j++){ 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 вот. автор вышеперечисленного кода получит семизнак, как тока установлю на компе винду =\ а тот кто исправит тоже. че я жадина чтоли
По моему самый простой вариант перехода на новую строку ето в цыкле вставить проверку : Code: if ( str[k] == '.' )cout<<endl; При такой проверке как только встретится точка курсор прыгнет на новую строку ! Да и вообще код какойто масивный для даного задания .... можно и попроще ) Я в разделе "Студентам с лабами" сделал ето заданице ))) Для проверку на точку в тот код просто вставь : Code: case '.' : cout<<endl; break;
про переход на новую строку. пихни в #27 Code: ................... c=str[k][j]; c1=str[k][j-1]; switch(c1) { case '.': printf("\n"); break; } if(c>='0'&&c<='9') { .............. ну и c1 задай.. вроде похоже на правду.
не мне ) тк ТС пощитал что "главное чтобы работало" у меня реализовано как-то сложно для его понимания ггг