私はこのコードを書いてユーザーからの入力を取得し、それをテキストファイルとして保存しました。C:セグメンテーションエラーを取得する
int main(){
FILE *fp;
fp = fopen("rahiv.txt", "w");
char s[80];
char a;
gets(s);
a = s ;
fputs(s, fp);
}
しかし、私は以下のようなfputs一部を書きたいならば、私が型キャスト()関数の戻り値を取得し、これを修正することができますどのように、私にセグメンテーションエラーを与えています!
int main(){
FILE *fp;
fp = fopen("rahiv.txt", "w");
char s[80];
fputs(gets(s), fp);
}
あなたの意図は 'a = s;'でしたか?提案:コンパイラ内のすべての警告を有効にし、エラーとして扱うように設定します。 – Groo
ファイルが正常に開かれたことをどのように知っていますか? – John3136
私は 'a = s;'の健全性に疑問を呈し、それは '' gets''(http://en.cppreference.com/w/c/io/gets)それは何年も前に標準的な図書館から取り除かれています。 'fopen'は成功するとは保証されておらず、また' gets'もありますが、あなたは両方が成功し、決してその結果をチェックしないと信じているようです。 – WhozCraig