c言語について、解けない問題があります。教えてください。
問題:第1引数に指定したファイルからバイナリーモードで1バイトずつファイルを読み込み、ファイルの内容を16進数で示した物を第2引数に指定したファイルに書き込む、プログラムを作成せよ。ただし、16バイトごとに改行を入れること。
<ファイルイメージ「file2.txt」>
aaaaa
bbbbb
ccccc
ddddd
eeeee
実行
>file3.exe file1.txt file2.txt
<ファイルイメージ「file2.txt」>
61 61 61 61 61 0D 0A 62 62 62 62 62 0D 0A 63 63
63 63 63 0D 0A 64 64 64 64 64 0D 0A 65 65 65 65
65 0D 0A
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
UNIXユーザーでしたら↓の簡単なプログラムを使って
./a.out<exefile1>file2.txt
のようにリダイレクトして終わりです。
/* Hexadecimal display program by Mac OSX
* file name: lql.c
* compile: gcc lql.c
* execution: ./a.out<read_file
*/
#include <stdio.h>
int main(void) {
int c, n;
printf("00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f\n");
printf("-----------------------------------------------\n");
n = 0;
while ((c = getc(stdin)) != EOF) {
if (++n == 16) {
printf("%.2x\n", c);
n = 0;
} else
printf("%.2x ", c);
}
if (n != 0)
printf("\n");
return 0;
}
丸投げの質問はWindowsユーザーのようですが、↑をベースに改良を加えることになります。なお、なぜそのようなプログラムになるかの学習はきちんと行ってくださいネ。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
FILE *fp_write, *fp_read;
int c, n;
if (argc != 3) {
printf("Parameter error\n");
return 0;
}
if ((fp_write = fopen(argv[--argc], "w")) == NULL ||
(fp_read = fopen(argv[--argc], "r")) == NULL) {
printf("Can't open %s\n", argv[argc]);
exit(1);
}
fprintf(fp_write, "00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f\n");
fprintf(fp_write, "-----------------------------------------------\n");
n = 0;
while ((c = getc(fp_read)) != EOF) {
if (++n == 16) {
fprintf(fp_write, "%.2x\n", c);
n = 0;
} else
fprintf(fp_write, "%.2x ", c);
}
if (n != 0)
fprintf(fp_write, "\n");
fclose(fp_write);
fclose(fp_read);
return 0;
}
No.2
- 回答日時:
>友達のためにこの質問を出して、わかる人が教えてくれれば助かります
では、そのお友達に、この問題のどこがわかっていて、どこがわからないかを聞いてきてください。
それと、わからないなりにもプログラムを作ったと思うので、それをもらって来てください。
自分の理解度を確認する、というのは、プログラムを勉強中のそのお友達のためにもいいと思います。
No.1
- 回答日時:
それで、どの辺が助けてほしい内容でしょうか?
「全て」というのはなしで。
少なくとも、学校の課題なら全てはともかくとして一部の機能については学習していると思うので。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
ふーん。
この回答への補足
すみません、http://detail.chiebukuro.yahoo.co.jp/qa/question …ってどういう意味ですか?誤解していると思いますが、友達のためにこの質問を出して、わかる人が教えてくれれば助かります
。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- iOS ファイルの名前変更 2 2022/08/11 20:47
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fopenでファイル名に、変数を使...
-
CRC32の計算方法
-
初心者のc言語
-
辞書順にソートしたいのですが...
-
ファイル出力で改行を入れたい!
-
構造体のメンバにファイルポイ...
-
ファイルに行番号を追加
-
【C言語】ファイルを読み込んで...
-
a*(1-exp(-bx))+cの近似の方法
-
漢字を配列に入れたいのですが
-
ファイルへの書込み処理が異常...
-
日本語ファイル名のFTPについて
-
objective-cで、バイナリの読み...
-
fgets( ) の返り値は何?
-
C言語でファイル読み書きを早く...
-
C言語
-
C言語でのファイル操作について...
-
複数ファイルの同時読み込みの...
-
ファイルポインタの位置
-
CSVファイルの内容を構造体に格...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ガンマ変換 C言語でプログラ...
-
c言語でのfscanfについて
-
なぜCSQとCIP形式ではコ...
-
複数ファイルの同時読み込みの...
-
fopenでファイル名に、変数を使...
-
ファイル出力で改行を入れたい!
-
ファイルへの書込み処理が異常...
-
【C言語】ファイルを読み込んで...
-
エラーがわかりません、、
-
C言語でセグメンテーションエ...
-
C言語でファイル読み書きを早く...
-
テキストファイル内に対して, ...
-
fgets( ) の返り値は何?
-
ファイルに行番号を追加
-
OpenGLによる描画内容をBMP出力
-
fscanfでループしてしまう。
-
c言語 ファイルから数字を読み...
-
ファイルが読み込めない・・・
-
CRC32の計算方法
-
CSVファイルの内容を構造体に格...
おすすめ情報