前提・実現したいこと
54 68 65 72 65
のように16進数が1行に格納されているテキストファイル"input.txt"を読み込み、
There
とASCII文字に変換してテキストファイル"output.txt"に出力するプログラムです。
最初にwhile文で入力データ数をカウントしてからfscanf→fprintfの処理で1文字ずつカウント分変換しようと思ったのですが、下記の通り何も出力されません。
for文内の処理は別でデバックできているのでカウントの処理で何かしらの問題があると思うのですがそれ以上がわかりません、どなたか助けてください...
発生している問題・エラーメッセージ
コンパイルは通り、プログラムは動くのですが何も出力されずoutputファイルの中が真っ白です
該当のソースコード
int main(){
FILE *fp;
FILE *fp2;
fp = fopen("input.txt", "r");
fp2 = fopen("output.txt", "w");
int a,ch,count;
while(1){ ch = fgetc(fp); if(ch == EOF){ break; } count ++; } for(int i=0;i<=count;i++){ fscanf(fp,"%x",&a); fprintf(fp2,"%c",a); } fclose(fp); fclose(fp2); return 0;
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 22:48