C言語の練習問題で分からないところがあるので詰まっています
問題条件として
・入力ファイルinAファイル内には数値が入っており
1
2
3
4
5
6
…
と縦に数値が入っておりいくつ入っているかは決まっていないものとします
・出力ファイルに結果を書き込んで表示させます
・表示の条件としては、
・ファイル内の数値をそのまま表示して
・10件ごとに小計して小計出力
・入力ファイル内全部の数値を読み込んだら数値全部の合計出力と合計行数出力
出力結果イメージ
1
2
3
4
5
6
7
8
9
10
小計:
11
12
13
合計:
合計行数:
発生している問題・エラーメッセージ
今現在10件ごとの計算の所で型変換して小計を出すのが分かりません。
ソースコードを見ておかしいところがあれば教えてください
#include <stdio.h>
#include <stdlib.h>
//型 int 関数名 main 引数 void
int main(void)
{
//入力ファイルポインタ型の定義
FILE* infp;
//出力ファイルポインタの定義 FILE* outfp; //char文字列を使用してinfnameの中にファイルパスを代入 char infname[] = IN_FILE_PATH; //char文字列を使用してoutfnameの中にファイルパスを代入 char outfname[] = OUT_FILE_PATH; //char型のboffに10バイト格納エリアを定義している char boff[10]; int i = 0; double total, onesum,towsum; //合計初期値 total = 0; onesum = 0; towsum = 0; //行カウント定義 int line_cnt; //行カウント初期化 line_cnt = 0; //infp = 入力ファイルオープン(ファイルを読込モードで開く) infp = fopen(infname, "r"); //outfp = 出力ファイルオープン(ファイルを書き込みモードで開く) outfp = fopen(outfname, "w"); //入力ファイルポインタにファイルが無い場合NULLを返す if (infp == NULL) { //入力ファイルが開けないエラー表示 printf("%sファイルが開けません\n", infname); //エラー発生の場合-1を返す return IN_FILE_OPEN_ERROR; } //出力ファイルポインタにファイルが無い場合NULLを返す if (outfp == NULL) { //出力ファイルが開けないエラー表示 printf("%sファイルが開けません\n", outfname); //エラー発生の場合-2を返す return OUT_FILE_OPEN_ERROR; } //ループ処理(notNULLの条件を満たしてる場合にループ処理を続行する) //(ファイル内データをstring型で10バイトの長さを読み込んでboffに格納していく) while ((fscanf(infp,"%s", boff)) != EOF) { //読み込んだレコード行数をカウントする line_cnt = line_cnt + 1; //ファイル内データ1行の表示 printf("%s\n", boff); //inA.csvファイルデータ1行をoutfpに書き込み fprintf(outfp, "%s\n", boff); //文字列から整数型に変換 //レコード10件小計計算 //10件目の判定(ラインカウント数10件目の判定) if (line_cnt >= 10) { printf("*\n"); printf("小計%d\n",sum); //10件判定したら初期化 line_cnt = 0; } } //入力ファイル内レコード合計 total = printf("合計件数",total); //ループ処理を抜けてきたらファイルを閉じる fclose(infp); fclose(outfp); //戻り値0を返す return SUCCESS;
}