Задать вопрос
Konstantin18ko
@Konstantin18ko
Стоматолог

Фильтр меняет итоговый результат в зависимости от написания последовательности списка?

Программа фильтр. Читает строку, ищет индекс, сравнивает его - пропускает или пишет в файл.
#include <stdio.h>
#include <string.h>

int main(){
    char city[80];
    char index[80];
    
    while(scanf("%79[^,],%79[^\n]", city, index) == 2){
        if(!strstr(index, "RU")){
            printf("%s,%s", city, index);
        }
    }
    return 0;
}

Список сортировки ВАРИАНТ №1:
Oslo,NO
Moscow,RU
London,EN
Minsk,BY
Beijing,CH
Krasnodar,RU

Результат:
Oslo,NO
London,EN
Minsk,BY
Beijing,CH

Список ВАРИАНТ №2 (объект индекс по которому сортируем т.е. RU):
Moscow,RU
London,EN
Minsk,BY
Beijing,CH
Krasnodar,RU
Oslo,NO

Результат:
//тут пустая строка
London,EN
Minsk,BY
Beijing,CH
Oslo,NO


Почему изменился список (+1 строка)? Как от этого избавится?
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У вас scanf не захватывает конец строки, в результате он присоединяется в начало city при следующем вызове.
Ну и проще
grep -v ,RU <file>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы