[英]segmentation fault with encoding program
#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,依此類推。 但它始終顯示“分段錯誤(核心已轉儲)”。 idk它有什么問題,請幫助我。
我在您的代碼中發現了以下問題:
n
未在程序中初始化
r
是只讀模式才能寫,必須使用w+
或r+
。
fputc( int c, FILE *fp );
此功能可用於寫入文件。 如果成功,它將返回成功寫入的書面字符,否則返回EOF。
分段錯誤是由於在文件程序中使用了r
模式,請嘗試使用w+
模式運行該程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.