2015-11-10 5 views
0

Я запутался в инструкции if else. Мой исходный код способен fscan данные из txt-файла и успешно выполнить печать.установка условия if else для фильтрации данных

Следующим шагом, который я хотел бы сделать, является установка инструкции if else, если src находится между 1-1024 и записывает эту строку в другой файл txt, если более 1024 он должен записать в другой файл txt.

Я пытался комбинировать оба кода ниже, но не смог заставить его работать.

do { 
    test = fscanf(inFile, "%d:%d:%d:%d:", &src, &dest, &type, &port);//read line from file 
    fgets(data, 100, inFile); 
    printf("%d %d %d %d %s", src, dest, type, port, data); 

    } while (test != EOF); 


if (src >= 1 && src <= 1024){ 

    FILE *outFile = fopen("data_1.txt", "w"); 
    fprintf(outFile, "%d %d %d %d %s", "data_1.txt"); 
    //outFile = cfopen("data_1.txt", "w"); //Open file for writing 
    //fprintf("%d %d %d %d %s", src, dest, type, port, data); 
} 
else { 
    fclose(outFile);//must always close file once done 
} 


fclose(outFile); 
fclose(inFile); //must always close file once done 

return 0; 

}

+0

если 'printf' в выходной rountine быть' fprintf (outFile и т. д.) '? в противном случае вы выводите на stdio, а не в data_1.txt. –

+0

Почему вы называете 'fscanf', а затем' fgets'? из того же указателя файла? Достаточно ли одного или другого? –

+0

@Mike да, мне нужно будет изменить эту часть printf –

ответ

1

еще, если более чем 1024

Вы сказали, что вы должны использовать else if(src > 1024)

+0

Это не нужно. «Else» в OP обрабатывает случаи, когда значение больше 1024; это именно то, что «еще» означает. Он также обрабатывает случаи, когда значение равно 0 или отрицательное, но это другая проблема (возможно). –

+1

@MikeofSST Как насчет того, является ли значение 'less'? Скажем, '-5'? – Michi

+0

@MikeofSSTЧто вы ответили на этот ответ? OP необходимо проверить, только если значение «больше», а не «меньше». – Michi

Смежные вопросы