簡體   English   中英

編碼程序的分割錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM