Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(C)Проблема с заменой символов в созданном файле

25K
16 марта 2007 года
Anny
2 / / 15.03.2007
Помогите исправить код программы. Задание: записать в файл текст, в котором слова разделены запятой,а рядки - символом '\n'.В конце текста - символ '?'. Создать функцию в которую передать имя файла и некоторый символ. Функция проверяет содержание файла на наличие в нем символа, который является ее параметром и заменяет его на символ '*'. В главной функции вывести новое содержание файла.

Код моей программы:
Код:
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<string.h>

int sub_char (const char* fname, char symb);

void main(void)
{
char word;
 FILE*fp;
 clrscr();
 char fname[128];
 char symb;
 int task;

 clrscr();
 printf("Input name of file:");
 gets(fname);
 strcat(fname,".txt");
 const char *fname1=fname;                  //creating the file with txt attribute


 if((fp=fopen(fname1,"w+"))==NULL){
  printf ("Cannot open the file.\n");
  exit(1);
  }

    printf("Input the string:\n");
     do{
    word=getche();
    if (word==' ')word=',';
    if (word=='\r')
    {word='/N';putc('\n',stdout);}
    if(word!=0x1B)putc(word,fp);
    }
    while(word!=0x1B);
    putc('?',fp);

    fclose(fp);
    printf("\n");
printf ("Enter the symbol for substitution to *");
symb = getche();
printf("\n");

task=sub_char(fname, symb);
printf ("New content of the file is the following:\n");
fseek(fp,0,0);
   do {
      word=fgetc(fp);
      putc(word,stdout);
      }
   while (word!=0x1B);
   getch();
   return;


fp=fopen(fname,"r");
if (fp==NULL)
 {
  printf("\n Unable to open the file!\n");
 getch();
 return;
 }


fclose(fp);
printf("Press any key to exit\n");
getch();
}

int sub_char (const char* fname, char symb)
{
 FILE *fp;
char word;

fp=fopen(fname,"r");                            //checking the ability to open the file
if (fp==NULL)
 {
  printf ("Unable to open the file\n");
  getch();
  return 0;
 }
 do
{
word=getc(fp);
if (word == symb)
{
word='*';
fputc(word,fp);
fseek(fp,0,1);
}
}
while(word!=0x1B);
return 0;
}

Файл успешно создается, туда записывается текст. Проблема с заменой на символ '*'.
25K
21 марта 2007 года
Anny
2 / / 15.03.2007
Если запускать программу через Debuger ошибка возникает в этом месте:
 
Код:
if (word == symb)


Может кто то знает напишите,пожалуста, мне завтра эту программу надо показать
242
21 марта 2007 года
Оlga
2.2K / / 04.02.2006
напиши ошибку, а если взять номер ошибки и пойти в мсдн,то можно найти и прочесть о её причинах возникновения.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог