Вообщем программа меняет в тексте определенное словосочетание букв.Сам цикл Code: for(int i = 0; i < 200; i++)//цикл замены в тексте словосочетаний xyoe на zpss if(stroka[i] == 'x' && stroka[i+1] == 'y' && stroka[i+2] == 'o' && stroka[i+3] == 'e') { stroka[i] = 'z'; stroka[i+1] = 'p'; stroka[i+2] = 's'; stroka[i+3] = 's; } printf(stroka);//вывод получившегося текста Как сделать так чтобы программа брала данные из текстового файла,имя которого надо ввести с клавиатуры,а затем сохраняла измененный текст в другом текстовом файле имя которого тоже вводится с клавиатуры.Результат изменения записывался в текстовый файл и показывался в окне программы. p.s нашел только с уже готовыми файлами,а чтобы сам вводил имя и создаввался текстовый файл нет
там по уже вписанному файлу ,а я должен сам вводить char *fname = "some_file.txt"; наприммер а я должен сам вводить
Чорд! Сорри, мужиГ, уже забыл С, но в Pascal была такая функция readln(s); которая ждала пока ты введешь данные c клавиатуры. НЕУЖЕЛИ в С такой НЕТУ? P.S. 1 день 14 часов 26 минут на форуме чем занимался то?)))
Во: http://tinyurl.com/3lr5jdm статья Глава 5. Средства ввода/вывода P.S. BrainDead спасибо за идею, кульный сервис)))
Code: #include <conio.h> #include <stdio.h> #include <locale.h> #include <string.h> int main() { setlocale(LC_ALL,"Rus"); char name[200]; char str[100]; printf("\n Введите имя файла: "); //спрашиваешь имя gets(name); //считываешь имя FILE *f = fopen(name,"r"); if (f == NULL) { printf("Error in open.\n"); } fprintf(f,"%c\n",name); for(int i = 0; i < 20; i++) if( str[i] == 'a' && str[i+1] == 'b' && str[i+2] == 'c') { str[i] = 'd'; str[i+1] = 'e'; str[i+2] = 'f'; } fprintf(f,"%c\n",str); fclose(f); getch() ; } написал начало ввод имени файла,но если пишу не верное то пишет ошибку так и должно быть,но если правильно то пустой экран текста нет в программе,хотя в файле он есть
Либо я слепой либо я хз. А ну ткни мну носом в строку кода в которой ты (по твоему мнению) производишь чтение из файла! И еще в строку, в которой ты (по твоему мнению) делаешь вывод на экран!
так я C не знаю, как я могу исправить то, но и так видно что из файла ты не читаешь и на экран не выводишь, а что такое fprintf спроси у гугла, он тебе ТАКОООЕ понарасскажет... P.S. и слово "ПОЖАЛУЙСТА" никто не отменял
Code: #include <conio.h> #include <stdio.h> #include <locale.h> #include <string.h> int main() { setlocale(LC_ALL,"Rus"); char name[200]; char str[200]; printf("\n Введите имя файла: "); //спрашиваешь имя gets(name); //считываешь имя FILE *f = fopen(name,"r"); fscanf(f,"%c\n",str);/* чтение из файла */ if (f == NULL) { printf("Ошибка открытия файла.\n"); } for(int i = 0; i < 200; i++) if( str[i] == 'a' && str[i+1] == 'b' && str[i+2] == 'c') { str[i] = 'd'; str[i+1] = 'e'; str[i+2] = 'f'; } fprintf(stdout, "%c", str); /* вывод на экран */ fprintf(f, "%s",name); /* писать в файл */ fclose(f); getch() ; } что щас неправильно
Имелось в виду "подскажите пожалуйста, что сейчас не правильно?" Если да, то вот это: Code: if (f == NULL) { printf("Ошибка открытия файла.\n"); return(1); } по логике должно идти до чтения из файла. А ты уверен, что Code: for(int i = 0; i < 200; i++) не превысит длину строки? И что значит "неправильно" в чем это проявляется? нет вывода на экран? А почему ты в одном месте используешь вывод на экран как printf("Ошибка открытия файла.\n"); а во втором как fprintf(stdout, "%c", str); /* вывод на экран */ ?
Code: #include <conio.h> #include <stdio.h> #include <locale.h> #include <string.h> #include <iostream> int main(int argc, char* argv[]) { setlocale(LC_ALL,"Rus"); char name[200]; char str[200]; printf("\n Введите имя файла: "); //спрашиваешь имя gets(name); //считываешь имя FILE *f = fopen(name,"r"); if (f == NULL) { printf("Ошибка открытия файла.\n"); exit(1); } printf("\nСодержимое файла: \n"); while(!feof(f))//пока не достигнут конец файла читаем построчно его и выводим { fgets(str,200,f); printf("%s",str); } fclose(f); getch() ; } программа должна показывать текст из файла в программе уже измененный по циклу. и еще она должна сохранять измененный текст в файл имя которого тоже надо вввсети с клавиатуры в программе
В общем мое личное мнение, что тебе нужно сначала прочитать некоторое количество литературы по программированию в общем и по языку С в частности. Удачи.