Я хочу добавить данные в файлы, если определенное условие истинно, иначе откройте новый файл и продолжайте писать в этот файл ... это продолжается в цикле.
Это то, что я делаю: не кажется, работает правильноДобавление операции в файл, похоже, не работает
FILE* ptr
firstrun=1
***some code***
WHILE (condition)
{
if(!condition1 && !condition 2)
something
else if(condition1 || condition 2)
{
write data to file
if(firstrun)
FILE* ptr
fopen a file
firstrun=0
***some code***
if condition1
append data to previously opened file
if condition2
fclose
FILE* ptr
fopen another new file
}
}
код в целом, но и другие части, кажется правильным. Созданный первый файл соответствует ответу, но ни один из следующих файлов не делает. Я также создаю гораздо больше файлов, не подозревая, сколько данных повторяется.
Может ли кто-нибудь сказать мне, правильно ли я здесь сделал? Я не отправляю код, потому что он огромен.
Некоторые другие случаи:
1. Если я не объявляю FILE * PTR в верхней части, он не компилируется, так как только другая декларация внутри «если» условие
2. Другой путь использовать более «если», что сделало бы код messier, и я не уверен, что это сработает.
Любая помощь оценена! Благодаря!
Этот псевдокод вообще не помогает. Не могли бы вы попытаться разбить свой код на небольшой пример, показывающий поведение, которое вы наблюдаете? Чтобы мы могли помочь вам определить реальные ошибки, которые у вас есть, а не * угадывающие ошибки, которые вы * могли бы иметь? –
Хорошо ... Я в один миг. – fineashell
Ух..но я не могу. Это задание колледжа (не хочу, чтобы вас поймали на помощь), плюс код очень запутанный, взаимосвязанный и большой. Это в основном заменяющий алгоритм слияния, с записью первичной кучи в выходной буфер. Я хочу создать runfiles из большего файла input.bin. Условие 1: outputbuffer <1000 и условие 2: heapsize> 0. Если они ложны, я должен добавить данные в ранее открытый файл. Я проверил, мой гепсорт отлично работает. У меня нет большой уверенности в том, как работает указатель FILE. – fineashell