, если быть точным, я пытаюсь скопировать из файла A в файл B каждое слово, в котором нет двух букв «e» и «t» в них , peter и т. д.), программа работает нормально, но в конце outfile я получаю странный знак.Удаление букв из слов в файле C - проблематичный знак
Input: What says Lucentio to this shame of ours?
Output: What says to this shame of ours?˙
(Может у увидеть характер ˙
?)
Я не хочу, я понятия не имею, Что это, но его не EOF, я пытался declude его от копирования и он не работает. Мне нужна помощь здесь.
Код:
char signHold[1];
int main(int *argc, char** argv)
{
FILE* infile;
FILE* outfile;
char* string = NULL;
if(argc != 3)
{
printf(stderr,"Error: Improper number of arguments");
return EXIT_FAILURE;
}
remove(argv[2]);
infile = fopen(argv[1],"r");
while(feof(infile) == 0)
{
string = getWord(infile);
if(checkDenied(string))
addToFile(outfile, argv[2], string);
addToFile(outfile, argv[2], signHold);
}
fclose(infile);
free(string);
return EXIT_SUCCESS;
}
char* getWord(FILE* ptr)
{
char* tempString;
size_t memSize = 0;
int c;
tempString = expandRealloc(NULL,sizeof(char));
while(c = fgetc(ptr))
{
if(isalpha(c) != 0)
{
tempString = expandRealloc(tempString, (memSize+1)*sizeof(char)+1);
tempString[memSize] = c;
memSize++;
}
else
{
signHold[0] = c;
break;
}
}
tempString[memSize] = '\0';
return tempString;
}
short int checkDenied(const char* str)
{
int i;
i = strspn("e", str);
if(i >= 1)
{
i = strspn("t", str);
if(i >= 1)
{
return EXIT_SUCCESS;
}
}
return EXIT_FAILURE;
}
short int addToFile(FILE* ptr, char* directory, char* text)
{
ptr = fopen(directory,"a+");
fprintf(ptr,"%s", text);
fclose(ptr);
return EXIT_SUCCESS;
}
Почему? Это будет сильно связано с I/O, поэтому использование C не приведет к чему-то другому, скажем, AWK, в котором это тривиально. –
Я студент-информатик, и я пытаюсь научиться C .. Что такое AWK? ~. –
Было ли это задано как домашнее задание или просто ваша собственная идея что-то делать? Если это домашнее задание, оно должно быть помечено как таковое. В противном случае я бы посоветовал выбрать что-то еще, что по крайней мере разумно подходит для вещей, которые C делает хорошо. –