Программа для редактирования тектового файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задаяа состоит в следуюшем : открыть файл записать туда текст закрыть файл поменять слова в тексте местами вывести измененый файл. вот один из вариантов выполнения
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
void main(){
FILE *f;
char *res ;
char str,*buf[10000];
int i=1,q,a=0;
while (a!=3)
 
{
  clrscr();
  printf ("1.ввод файла \n");
  printf ("2.просмотр изменненого файла \n");
  printf ("3.выход \n");
  scanf("%d",&a);
  switch(a){
 
  case 1 :
  while((str=getchar()) != '0'){
  f=fopen("c:/a.txt","wt");
  if (f==0){
  puts("Error");
  return 1;}
  fprintf (f,"%s",str);
  fclose(f);
  res=strtok(str," ");
  buf[0]=res;
  }
  while (res != NULL){
  res=strtok(NULL," ");
  buf[i] = res;
  i++;
  } break;
  case 2: q=i;
    f=fopen("c:/a.txt", "wt") ;
    for (i=q-2;i>=0;i--)
    printf("%s",buf[i]);
    fclose(f);
    break;
  case 3:printf("Poka");break;
 
  }
 getch();
 
}
 
}
проблеза заключаеться в том что он не выводит измененый файл. И вообще ничего не выводит. Помогите пожалуйста.

Решение задачи: «Программа для редактирования тектового файла»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h> 
int main(){
    setlocale(LC_ALL,".1251"); 
    FILE *f;
    char str=0;
    while(1){
        system("cls");
        printf ("1.ввод файла \n");
        printf ("2.просмотр изменненого файла \n");
        printf ("3.выход \n");
        scanf("%c",&str);
        switch(str){
            case 49 :
                if(!(f=fopen("c:/a.txt","w"))){
                    puts("Error");
                    return 1;
                }
                while((str=getche()) != 13)
                    fprintf (f,"%c",str);
                fprintf (f,"%c",(str=0));
                fclose(f);
            break;
            case 50:
                if(!(f=fopen("c:/a.txt","r"))){
                    puts("Error");
                    return 1;
                }
                do{
                    fscanf(f,"%c",&str);
                    printf("%c",str);
                }while(str!=0);
                fclose(f);
                printf("\n");
                system("pause");
            break;
            case 51:
                printf("пока \n");
                system("pause");
            return 0;
        }
    }
}

Объяснение кода листинга программы

  1. В начале программы подключаются необходимые библиотеки для работы с файлами и консолью.
  2. Устанавливается локальная настройка на русскую локализацию.
  3. В основной функции программы, при помощи цикла while(1), происходит циклическое выполнение программы, пока пользователь не выберет пункт 3.
  4. При выборе пункта 1 происходит открытие файла c:/a.txt в режиме записи w. Если файл не может быть открыт, выводится сообщение об ошибке и программа завершается.
  5. В случае успешного открытия файла, происходит запись всех символов, вводимых пользователем, в файл c:/a.txt.
  6. При выборе пункта 2 происходит открытие файла c:/a.txt в режиме чтения r. Если файл не может быть открыт, выводится сообщение об ошибке и программа завершается.
  7. В случае успешного открытия файла, происходит чтение всех символов из файла c:/a.txt и их вывод на экран.
  8. При выборе пункта 3 программа завершается, закрывая все открытые файлы.
  9. В случае выбора неправильного пункта меню, программа продолжает работу, игнорируя неправильный выбор.
  10. В конце программы происходит закрытие всех открытых файлов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы