Прокоментируйте, пожалуйста, код!

 
0
 
C++
ava
cuore | 18.02.2013, 15:46

#include <cstdio>
#include <string>

int main()
{
    int i=0,j=1,k=0;
    const int maxLen=15,maxNum=25;
    char slovo[maxNum][maxLen+1];
    FILE *f1;
    FILE *f2;
    f1=fopen("w1.txt","rt");
    f2=fopen("w2.txt","wt");
    if(f1 == NULL)
    {
        printf("Error of reading!");
        return 1;
    }
    if(f2 == NULL)
    {
        printf("Error of reading!");
        return 1;
    }

    do
    {
        fscanf(f1,"%s",&slovo[i]);
        i++;
    }while(!feof(f1));
    
    do
    {
        fputs(slovo[j],f2);
        fputc(' ',f2);
        fputs(slovo[k],f2);
        fputc(' ',f2);
        j+=2;
        k+=2;
    }
    while(j<i && k<i);

    if(i%2==1)
        fputs(slovo[i-1],f2);
    fclose(f2);
    fclose(f1);
    return 0;
}
Ответы (3)
ava
baldina | 18.02.2013, 15:01 #
в смысле поругать или в смысле объяснить что делает?
если первое - начинается как С++, а заканчивается как С, не используя ничего из подключенного заголовока <strring>. переменные названы крайне неудачно. хватит для начала?

если второе, то что именно неясно?
ava
borisbn | 18.02.2013, 21:43 #
Цитата (cuore @  18.2.2013,  14:46 findReferencedText)
    do
  {
    fscanf(f1,"%s",&slovo[i]);
    i++;
  }while(!feof(f1));

если подать файл, в котором больше, чем maxNum слов (или хотя бы одно слово будет длиннее, чем maxLen - упадёт
ava
cuore | 18.02.2013, 22:02 #
Объяснить, как тут что происходит)
Не понятно, как работает кусок, начиная с цикла do.
Код этот выполняет перестановку двух соседних слов в файле, а как это происходит - не ясно. 
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  baldina ava  borisbn   cuore
advanced
Отправить