#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char* argv[])
{
int n;
FILE *f1;
char fn[]={"test.txt"};
int c;
f1=fopen(fn,"r");
c=fgetc(f1);
while(c!=EOF){
if ((c<'Z')&&(c>'A')) c=c+n;
}
fputc(c,f1);
fclose(f1);
}
我试图编写一个编码程序(!?idk,如果因为英语是我的第二语言而被调用的话)。如果我输入步数为4,它应该将A改为E,B改为F,依此类推。但它不断显示&#34;分段错误(核心转储)&#34;。我有什么不对的,请帮助我。
答案 0 :(得分:0)
我在你的代码中发现了这些问题:
n
未在程序中初始化
r
为只读模式,您必须使用w+
或r+
。
fputc( int c, FILE *fp );
此函数可用于写入文件。如果出现错误,它将返回写入成功的书写字符,否则返回EOF。
分段错误是由r
模式引起的,该模式在文件程序中尝试使用w+
模式运行程序。