Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2022, 16:32   #1
Mark3256
Новичок
Джуниор
 
Регистрация: 21.05.2022
Сообщений: 2
По умолчанию Построчное чтение файла на языке C

Здравствуйте, хочу написать программу, которая читает из файла арифметические выражения, записанные в виде "a*b", и выводит их в виде "a b *". Это будет основная часть большей программы. Проблема в том, что программа читает первую строчку и выводит все правильно, а потом появляется сообщение, что работа программы прекращена, и я не знаю почему. Подскажите, пожалуйста.

Код:
int main()
{
    int n=0, i, v=0, j=0;
    float A, B;
    char b[177];
    char a[177];
    char c[177];
    char z;
    FILE *f;
    f = fopen("002.txt", "r");
            while(fgets(c, 177, f)!=NULL){
            i=0;
            while(c[i]!='\0'){ //здесь я ставлю условие, что цикл будет выполняться до конца строки
            while(c[i]!='+' && c[i]!='-' && c[i]!='*' && c[i]!='/'){ //считываю в строку a числа до знака 
                a[j]=c[i];
                i++;
                j++;
            }
            z=c[i]; // сам знак в переменную z
            i++;
            while(c[i]!=' '){ //теперь до пробела считываю в строку b следующее число
                b[v]=c[i];
                v++;
                i++;
            }
            B=atof(b); 
            A=atof(a);
            //тут получаю нужные мне числа в переменные A И B
            printf("%f %f %c ", A, B, z);
            j=v=0;
            }
            for(i=0; i<=176; i++){ //обнуляю массив с
                c[i]=0;
            }

            }
    fclose(f);
    return 0;
}
Mark3256 вне форума Ответить с цитированием
Старый 21.05.2022, 17:52   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
while(c[i]!='+' && c[i]!='-' && c[i]!='*' && c[i]!='/'){ //считываю в строку a числа до знака 
                a[j]=c[i];
                i++;
                j++;
            }
А если в строке не будет ни +, ни -, ни *, ни /, то \0 можно и перескочить. Будем искать пока не найдем, памяти длинная.
macomics вне форума Ответить с цитированием
Старый 22.05.2022, 12:02   #3
Mark3256
Новичок
Джуниор
 
Регистрация: 21.05.2022
Сообщений: 2
По умолчанию

Спасибо! Исправил немного, теперь всё работает. Оставлю тут, код не очень, но вдруг кому-то пригодится.
Код:
int main()
{
    int n=0, i, v=0, j=0;
    float A, B;
    char b[177];
    char a[177];
    char c[177];
    char z;
    FILE *f;
    f = fopen("002.txt", "r");
            while(fgets(c, 177, f)!=NULL){
            i=0;
            while(c[i]!='\0'){
            while(c[i]!='+' && c[i]!='-' && c[i]!='*' && c[i]!='/' && c[i]!='\0'){
                a[j]=c[i];
                i++;
                j++;
            }
            z=c[i]; // сам знак в переменную z
            i++;
            while(c[i]!=' ' && c[i]!='\0'){
                b[v]=c[i];
                v++;
                i++;
            }
            B=atof(b);
            A=atof(a);
            printf("%.2f %.2f %c ", A, B, z);

            for(n=0; n<=176; n++){
                a[n]=0;
                b[n]=0;
            }
            j=v=0;
            }
            for(i=0; i<=176; i++){ 
                c[i]=0;
            }
            printf("\n");
            }
    fclose(f);
    return 0;
}
Mark3256 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построчное чтение из файла в winexec Musihina1 Общие вопросы Delphi 1 11.04.2017 22:59
Построчное чтение из файла. Winapi. Си. FULEREN Общие вопросы C/C++ 9 23.08.2014 16:25
Построчное чтение переменных из файла biohazard120 Общие вопросы C/C++ 2 04.12.2012 18:42
PL/SQL, построчное чтение txt файла seriousMalish SQL, базы данных 0 09.06.2010 21:31
Построчное чтение из файла Mihalich1988 Общие вопросы C/C++ 5 17.12.2008 02:10