2015-03-07 1 views
0

У меня возникли проблемы с записью в файл здесь ... Я должен сделать простую ошибку, но я не могу ее найти. В любом случае, вот код:Пытается использовать fopen и fprintf с matlab, только один раз писать

ages = 1; 
while (ages > 0) 
    fileID = fopen('age.txt', 'w'); %opens file 
    ages = input('Enter an age (negative to quit): '); %user input 
    if(ages > 0) %so it doesn't add on the break number 
     fprintf(fileID, '%d\r\n', ages); 
    end 
end 

fclose(fileID); 

Моя проблема в том, что он ничего не пишет в файл. Если я удалю оператор if, она записывает только -1 в файл (используя -1 в качестве отрицательного номера «quit»). Что мне не хватает?

+1

Легко, ваша команда 'fopen' находится внутри цикла ... поэтому каждый раз« он открывает файл для записи. Отмените существующее содержимое, если оно есть »(режим' w'). Поместите 'fopen' вне' while' loop – CitizenInsane

+2

Начните с перемещения 'fileID = fopen ('age.txt', 'w'); % открывает файл 'перед' while'. Достаточно открыть файл только один раз. –

+0

@CitizenInsane Возможно, вы захотите добавить это в ответ. Если только получить хороший и аккуратный обзор, пусть другие видят, что на это отвечает. –

ответ

0

Easy,

Ваша команда fopen находится внутри цикла ... так что каждый раз «открывает файл для записи и отбросить существующее содержимое, если какой-либо» (w режим).

Положить fopen снаружи во время цикла.

+0

Спасибо! Я не уверен, как выбрать это как ответ или повысить его, но это именно то, что мне нужно! – Ryan