- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1197132472/
- 29 名前:デフォルトの名無しさん [2008/01/15(火) 11:17:55 ]
- #include <stdio.h>
#include <malloc.h> #define buffer_size 10 int main(int argc ,char *argv[]) {FILE *p; char buffer[buffer_size]; if(argv[1]==0){ printf("ファイル名を入力してください\n"); scanf("%s",&argv[1]); }else if(argv[1]==0){ printf("プログラムを終了します。");return 0; } p=(FILE *)malloc(sizeof(FILE)); if(p == 0){ perror("領域確保に失敗");return 0; } p=fopen(argv[1],"r"); if(p){ while(fgets(buffer,buffer_size,p)){ printf("%s",buffer); } } if(!p){ printf("文字列を書き込んでください\n"); scanf("%s",buffer); p=fopen(argv[1],"w"); if(fprintf(p,buffer)==0){ perror("終了します。\n");return 0;} }; fclose(p);free(p);return 0; } うまい下手はさておいてこのプログラムの間違いを教えてください。コマンド未入力の場合、既存ファイルがあるにも関らず入力を促す。セグメンテーション、アボートエラーがでます。よろしくお願いします。
- 30 名前:デフォルトの名無しさん [2008/01/15(火) 11:21:48 ]
- >>29
>if(argv[1]==0){ >printf("ファイル名を入力してください\n"); >scanf("%s",&argv[1]); >}else if(argv[1]==0){ >printf("プログラムを終了します。");return 0; >} ・argv[1] == 0 じゃなくて argc == 0 ・if(argv[1]==0) ・・・ else if(argv[1]==0) ↑ねーよwwww
|

|