PDA

Просмотр полной версии : Задача на файлы (язык С)



Katiox-xa
24.11.2008, 14:05
Здравствуйте.
Помогите, пожалуйста, в написании программы
Скопировать содержимое текстового файла, удалив в каждой строке слово номер N+1, если в слове N есть 4.

У меня пока получилось только: Скопировать содержимое текстового файла, удалив в каждой строке слово номер N


#include <stdio.h>
#include <stdlib.h>

void del_n(char *pathFileInput, char *pathFileOutput, unsigned int *N)
{
char c;
unsigned int i=1;

FILE *fileInput;
FILE *fileOutput;
fileInput =fopen(pathFileInput, "r");
fileOutput=fopen(pathFileOutput, "w");

while((c=fgetc(fileInput))!=EOF)
{

while(c!='\n' && c!=EOF)
{
if (c==' ')
{
i++;
fputc(' ', fileOutput);
}
else
{

if (i!= *N)
fputc(c, fileOutput);

}
c=fgetc(fileInput);


}
i=1;
fputc('\n', fileOutput);
}
fclose(fileInput);
fclose(fileOutput);
}

void main(void)
{
char *strInput;
char *strOutput;
unsigned int *number;

strInput=(char*)calloc(20, sizeof(char));
strOutput=(char*)calloc(20, sizeof(char));
number=(unsigned int*)malloc(1*sizeof(unsigned int));

printf("Input file path: ");
scanf("%s", strInput);
printf("Output file path: ");
scanf("%s", strOutput);
printf("Number: ");
scanf("%u", n);
printf("\n");

del_n(strInput, strOutput, number);

free(strInput);
free(strOutput);
free(number);
}

StarWorm
24.11.2008, 15:12
удалив в каждой строке слово номер N+1, если в слове N есть 4.
что значит в слове N есть 4???

Katiox-xa
24.11.2008, 22:13
один из символов в слове под номером N 4

StarWorm
25.11.2008, 13:06
Все равно не понял... приведи наглядный пример!!!

Katiox-xa
25.11.2008, 14:08
Есть входной файл
qqq qqq qqq4qq qqq
qqq qqq qqqq qqqq
qqq qqqqq qqqq4qqq qqqq q


Введите номер слова
3


Выходной файл будет:
qqq qqq qqq4qq
qqq qqq qqqq qqqq
qqq qqqqq qqqq4qqq q

Katiox-xa
25.11.2008, 14:10
Во входном файле смотрим третье слово. В нем есть 4? Да, тогда удаляем четвертое(3+1) слово. Нет, тогда ничего не делаем.

Хыиуду
25.11.2008, 19:12
1. Раздел "Алгоритмы", тема "Разбиение строки на слова"
2. Функция pos

StarWorm
26.11.2008, 00:19
если нужна помощь обращайся...
382 шесть шесть шесть 671 :cool: