前提・実現したいこと
C言語でコマンドライン上で入力した文字をファイル出力するプログラムを作っています。
EOFが入力されるとループを抜けてファイルを出力するようにしたいです。
発生している問題・エラーメッセージ
実際に文字を打つ所で文字を打ち改行するとコアダンプになってしまいます。
該当のソースコード
C
1#include <stdio.h> 2#include <stdlib.h> 3 4int main(){ 5 FILE *opfile; 6 char *txt; 7 8 opfile = fopen("sample.txt","w"); 9 if(file == NULL){ 10 printf("file open failed."); 11 exit(1); 12 } 13 14 while(scanf("%s",txt) != EOF){ 15 fgets(txt,100,stdin); 16 fprintf(opfile,"%s",txt); 17 } 18 19 fclose(opfile); 20}
試したこと
fgets()の最大文字数やstdinを変えてみました。
ネットで色んなソースコードを調べながら組み合わせました。
補足情報(FW/ツールのバージョンなど)
Ubuntu 16.04
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/17 06:21 編集
2019/02/17 06:35