#include<stdio.h>
#include<ctype.h>
void main()
{
FILE *fp1,*fp2,*fp3;
char a[100],b;
int i=0,j=0;
fp1=fopen("names.txt","r");
fp2=fopen("names.txt","w");
i=0;
do
{
b=fgetc(fp1);
b=toupper(b);
a[i]=b;
i++;
} while(b!=EOF);
i=0;
do
{
fputc(a[i],fp2);
i++;
}while(a[i]!=EOF);
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
编译此代码时遇到段错误,你能帮我找出错误吗 错误类似于“第 2 行:段错误 ”
最佳答案
您需要学习如何调试。要么学习如何使用调试器,要么如果您没有耐心,只需在代码中添加一些调试打印即可看看它进展到什么程度。例如:
fprintf(stderr, "%d\n", i);
这会告诉你一些事情。您很快就会发现错误。
我的猜测是:
- 您的文件超过 100 个字符。
- b 应该是一个 int,并且不应将其存储在数组中。
- 第二个循环不应查找文件结尾,而应使用您读取的字符数。
- 您正在关闭 fp3,但尚未打开它。
但是,这又是基本的东西。您需要学习进行基本的调试。
关于c - 在编译下面的代码时出现段错误,你能帮我找出错误吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46141393/