|
|
|
| Поставленная передомной задача:
на Visual C++
Создать программу ввода текста в файл с последующей обработкой.
В заданном тексте заменить последовательность символов X(I) на A(I) и подсчитать число произведенных замен.
Моё решение:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
char letter;
char chto[13]="SOS";
char nachto[13]="SaveOurSouls";
if((fp = fopen("myfile","w"))==NULL) //ошибка открытия
{ puts("Nevozmogno otkrit fail");
exit(1);
}
puts("Vvodite text poka ne nadoest,dlya vixoda |");
do
{letter=getchar();
fputc(letter,fp); //запись
if(letter == chto)
{
letter = nachto;
}
}
while(letter != '|');
fclose(fp); //закрытие
if((fp = fopen("myfile","r"))==NULL) //ошибка открытия
{ puts("Nevozmogno otkrit fail");
exit(1);
}
while((letter = fgetc(fp))!= EOF) //чтение
printf("%c",letter);
fclose(fp); //закрытие
ge |
Я понимаю,что оно не рабочее.
И мне хотелось бы узнать,что надо сделать,что бы заработало ? | |
|
|
|
|
|
|
|
для: Mozy
(12.04.2009 в 18:02)
| | Какие ошибки выдает? | |
|
|
|
|
|
|
|
для: GeorgeIV
(13.04.2009 в 10:28)
| | Ошибка 2 error C2446: ==: нет преобразования 'char *' в 'int'
Ошибка 3 error C2040: ==: "int" отличается по уровням косвенного обращения от "char [13]"
Ошибка 4 error C2440: =: невозможно преобразовать 'char [13]' в 'char' | |
|
|
|
|
|
|
|
для: Mozy
(13.04.2009 в 14:40)
| | Смотря далее видим, что letter - это символ, в ты пытаешься присвоить ему массивы из символов. В Си нельзя так сравнивать символ и строку, необходимо символы добавлять в строку и сравнивать строки strcmp() | |
|
|
|
|
|
|
|
для: GeorgeIV
(13.04.2009 в 15:33)
| | а как сделать другому,и что бы работало? | |
|
|
|