СИ++ (подправь код - получи аську) Программа считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один",...,"девять", начиная каждое предложение с новой строки. Code: #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., т.е. ничего лишнего, а это не работает. вот.
ну во первых это Си++, а не Си во вторых вот нашел учебник для 9 класса ) (http://kpolyakov.narod.ru/school/c.htm) используй двумерный массив char num[10][10] = {"ноль","один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"}; а для замены сделай отделную переменную буффер (char buff[1024]) и туда способом strcat (ст 32 в учбенике) помещай результат замены хех... ну а анализировать тебе надо будет каждый байт файлика... читай ту книжку толково
с меня семизначная аська, за выполненный полностью результат, тут тупо поменять, для знающего человека пустяк =( +у меня одномерный массив а не двух
кстати, тут пипец у те всякие fopen ))))))можно по проще код? 0_0 и проверь его сразу там, в Borland c 3.1, семизнак будет!!! не ссы, мне главное что пахало всё. вот три фотки примеров http://www.rapidshare.ru/1044772 мнеб так, т.е. по простому без заморочек...
чувак в тех примерах не Си а Си++ - это разные языки бороды Си 3,1 у мя в памине нет проверял на бороде Си++ 6,0 проект создавал как чистый Си консольный все пашет... файл нужно ложить в папку с прогой или указывать полный путь до него
http://upload.com.ua/get/900318320/ тут качни. я наю что файл должен лежать рядом с исходником ^_^. ))) проверь на "Privet clovarb 1 2 3. Privet 2 3 4 9. Aga aga 1" этом и не забывай, что прога должна ещё все предложения с новой строки
ушло в личку... а дал ссылку ты мне на бороду Си++ 3.1 ) я изначально думал тебе просто циферки преобразовать надо а те заменить надо ммм ) хех
неееее мне так, чтоб работало и небыло заморочек , и чтоб работало, повторюсь)) проверь плиз именно в той 3.1. ОООЧ надо.
Спешиал фор ю!) BC 3.1 написано кривовато конешно, но работает... входные данные результат сорец: PHP: #include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> void print_wrd(char *); //прототип ф-ии, преобраз цифру в слова void main() { clrscr(); FILE *fPtr; char *str[20],*wrd[30]; int i=0,j=0; //открываем файл на чтение if((fPtr=fopen("inpt.txt", "rt"))==NULL){ printf("File could not be open =(\n"); getch(); return; } else{ //в цикле считываем строки из файла в массив str. кста макс строка может быть 50 байт fgets(str[i],50,fPtr); while(!feof(fPtr)){ i++; fgets(str[i],50,fPtr); } fclose(fPtr); } //разбиваем каждую строку на слова при помощи strtok for(int k=0; k<=i; k++){ wrd[j]=strtok(str[k]," "); while(wrd[j]!=NULL){ //передаем слово(цифру) ф-ии print_wrd которая уже и преобразует 123 в АдЫн Два Три print_wrd(wrd[j]); j++; wrd[j]=strtok(NULL," "); } } getch(); } void print_wrd(char *wrd) { char *cfr[]={"HOJIb","oDbIH","DBa","Tpu","4eTbIpu","n9Tb", "6ecTb","CeMb","BoceMb","DeB9Tb"}; int n,i,c; n=strlen(wrd); //в цикле печатаем цифры из слова wrd for(i=0; i<n; i++){ c=wrd[i]-48;//типа превращяем символ в цофру //проверка является-ли с цифрой, если является то выбираем ее из cfr if(c>=0&&c<=9){ printf("%s ",cfr[c]); } } printf("\n"); } Все вместе в архиве
fker он из примера: "Privet 1. Privet 2. 3" ВЫвел только: " ODblN DVA Tpu" А надо "Privet Odin. Privet Dva. Tpu" Т.е. 1)каждое предложение с новой строки 2)чтобы всё выводилось на экран , не внимательно читал, а так, пашет клёва..... доработай и я тебе тогда отдам аську, заслужил
Нао было сразу выкладывать примеры входных данных и результат обработки =\ Тогда получаццо еще проще, но время нет делать\\ если тока завтро
2 fker ихмо я круче Code: #include "stdlib.h" #include "stdio.h" #include "malloc.h" int main(int argc, char * argv[]) { FILE * f; size_t buflen = 0, result = 0, si = 0; unsigned char * buffer, ch; char num[10][10] = { "nol", "odin", "dva", "tri", "chet", "pat", "shest", "sem", "vos", "dev" }; f = fopen("test.txt", "rb"); if (f == NULL) { printf("Error open!"); return 1; } fseek(f, 0, SEEK_END); buflen = ftell(f); rewind(f); buffer = (unsigned char * ) malloc(buflen); if (buffer == NULL) { printf("Memory error\n"); return 2; } result = fread(buffer, 1, buflen, f); if (result != buflen) { printf("Reading error\n"); return 3; } while (si < buflen) { if (buffer[si] == '.') { putc(buffer[si], stdout); putc(0x0A, stdout); } else { ch = buffer[si] - 0x30; if (ch >= 0 && ch <= 9) { printf("%s", num[ch]); } else { putc(buffer[si], stdout); } } si++; } free(buffer); fclose(f); getchar(); return 0; }
жесть... чем он лучше?? у него код проще, можешь его код доделать? у тебя слишком замороченный))) "1)каждое предложение с новой строки 2)чтобы всё выводилось на экран" и всё.
пиу 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(); } блё, как ху*ва жить без инета=((