请问为什么我写的程序会停止工作?

请问为什么我写的程序会停止工作?,第1张

程序停止响应,是因为你的内存出现非法读写 *** 作

请检查你的代码所有关于内存读写的地方

不能用下标 10 读取数组 x1 的内容,这样子会导致数组上标越界

你只能使用 0 - 9 来读取数组 x1 的内容

标准输出流有缓存,需要特定条件都会触发真正显示出来。

而且一般不建议混用c方式的输入输出(scanf)和c++的标准iostream

可以baidu一下“标准输出流缓冲”获取相关的信息。

#include<stdio.h>

#include<string.h>

void main()

{

FILE *fp1,*fp2

int i,j

char m[3][20]={"student","teacher","string"}

char n1[60],n2[60]

fp1=fopen("stu.txt","wt+")

if(fp1==NULL)

return

fp2=fopen("student.txt","wt+")

if(fp2==NULL)

return

for(i=0i<3i++)

{

fputs(m[i],fp1)

}

fclose(fp1)

fp1=fopen("stu.txt","r")

if(fp1==0)

return

fgets(n1,60,fp1)

for(i=0,j=0n1[i]!=NULLi++)

if(n1[i]!='s')

{

n2[j++]=n1[i]

}

n2[j] ='\0'

fputs(n2,fp2)

printf("old:\n")

printf("%s\n",n1)

fclose(fp1)

fclose(fp2)

fp2=fopen("student.txt","r")

if(fp2==0)

return

printf("new:\n")

fgets(n2,60,fp2)

printf("%s\n",n2)

fclose(fp2)

}

我也是个新手,我就是搞不懂你这个程序再判断去掉s那里,为什么要加while循环,还有最后输出新的字符窜,又要价格while循环。我去掉while好像程序运行挺正常的,求教!谢谢


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11140542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存