尝试在matlab中使用fopen和fprintf,只编写一次

尝试在matlab中使用fopen和fprintf,只编写一次,matlab,input,printf,fopen,Matlab,Input,Printf,Fopen,我在这里无法写入文件。。。我一定是犯了个简单的错误,但我找不到。不管怎样,代码如下: 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

我在这里无法写入文件。。。我一定是犯了个简单的错误,但我找不到。不管怎样,代码如下:

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作为负“退出”号)。 我错过了什么?

简单

您的
fopen
命令位于循环内。。。所以每次“它打开文件进行写入并丢弃现有内容(如果有)”(
w
mode)


fopen
置于while循环外部。

简单,您的
fopen
命令位于循环内部。。。因此,每次“打开文件进行写入。丢弃现有内容,如果有的话”(
w
mode)。将
fopen
置于
之外,同时
通过移动
fileID=fopen('age.txt','w');%在
之前和
期间打开文件。只打开文件一次就足够了。@citizensanse你可能想把它放在一个答案中。如果只是为了让概览清晰整洁,让其他人看到这一点,答案是肯定的。@citizensemane,就这么做吧。:)你比我快谢谢你!我不知道如何选择这个作为答案或投票,但这正是我所需要的!