Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Прокоментируйте, пожалуйста, код!


Автор: cuore 18.2.2013, 14: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;
}

Автор: baldina 18.2.2013, 15:01
в смысле поругать или в смысле объяснить что делает?
если первое - начинается как С++, а заканчивается как С, не используя ничего из подключенного заголовока <strring>. переменные названы крайне неудачно. хватит для начала?

если второе, то что именно неясно?

Автор: borisbn 18.2.2013, 21:43
Цитата(cuore @  18.2.2013,  14:46 Найти цитируемый пост)
    do
    {
        fscanf(f1,"%s",&slovo[i]);
        i++;
    }while(!feof(f1));

если подать файл, в котором больше, чем maxNum слов (или хотя бы одно слово будет длиннее, чем maxLen - упадёт

Автор: cuore 18.2.2013, 22:02
Объяснить, как тут что происходит)
Не понятно, как работает кусок, начиная с цикла do. 
Код этот выполняет перестановку двух соседних слов в файле, а как это происходит - не ясно. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)