为什么我这个代码不能边输入边储存到文件里?

#include<stdio.h>
int main(void)
{
FILE *p;
p=fopen("123.txt","r+");
int n,m,a;
do
{
scanf("%d",&n);
scanf("%d",&m);
fwrite(&n,sizeof(int),1,p);
fwrite(&m,sizeof(int),1,p);
}
while(n!=0&&m!=0);
fwrite('\n',sizeof(char),1,p);
fclose(p);
return 0;
}

把fopen的读写模式改为"w+"就可以了,另外如果还要修改下的话,可以把do-while循环改为while循环稍微修改如下:


#include<stdio.h>
int main(void)
{
FILE *p;
p=fopen("f:\\123.txt","w+");
int n,m,a;
int num[10];
do
{
scanf("%d",&n);
scanf("%d",&m);

fwrite(&n,sizeof(int),1,p);
fwrite(&m,sizeof(int),1,p);

}
while(n!=0&&m!=0);
fwrite("\n",sizeof(char),1,p);
fclose(p);

//int i;
//p=fopen("f:\\123.txt","r");
//i=1;
//while(i!=0){
//    i=fread(&m,sizeof(int), 1,p);
//    if(i!=0){
//        printf("%d ",m);
//    }
//}
//fclose(p);

return 0;
}