Така-а-а имам курсова по C...да се прочете файл, да се намери еди какво си...както и да. Имам проблем с реализацията на 3-та точка: Ако срещне коментар да сменя малките букви с големи и обратното...
int commentsChange(void){
char str[256], fileName[256];
FILE *fp;
int i, j, k, l=0;
do{
fflush(stdin);
printf("%s\nEnter the name of the file in %s/", p, dir);
gets(fileName);
if(!(fp=fopen(fileName, "rb+"))){
printf("File NOT Found!\n");
return 0;
}
j=0;
while(!feof(fp)){
fgets(str, 255, fp);
for(i=0;i<strlen(str);i++){
if(str[i]=='/' && str[i+1]=='*') j=1;
else if(str[i]=='*' && str[i+1]=='/') j=0;
if(j && str[i]>64 && str[i]<91) str[i]=tolower(str[i]);
else if(j && str[i]>96 && str[i]<123) str[i]=toupper(str[i]);
if(str[i]=='/' && str[i+1]=='/'){
for(k=i;k<strlen(str);k++){
if(str[k]>64 && str[k]<91) str[k]=tolower(str[k]);
else if(str[k]>96 && str[k]<123) str[k]=toupper(str[k]);
}
}
}
fseek(fp, l*sizeof(char),SEEK_SET);
fprintf(fp, "%s", str);
l+=strlen(str);
}
printf("\n\"%s\" saved successfully.\n", fileName);
puts(p);
printf("Do you want to search for another file<Y/N>: ");
i=ch_Checker();
}while(i);
return 0;
}
ето така съм го написал, и проблема е, че като въведа файла и блокира програмата и постоянно записва празни редове... прилагам снимка на текста преди и след обработката, явно проблема е в fseek(), но не мога да разбера къде... ако дам само принтф() без да го записвам си изкарва на екрана всичко правилно.
успях да я направя с двумерен масив където записвам целият текст и после с "r+" си записвам информацията върху тази, успях да го направя и с 2-ри *.тмп файл,
но искам да го направя по този начин точно... някой може ли да ми каже къде бъркам...