C言語初心者です。数値が書かれたテキストファイルを読み込み、合計を求めて新しいファイルを作る方法がわかりません。合計は最後の行に追加します。
20,21,4,27 → 20,21,4,27,72
ご教授お願い致します。
テキストファイルの読み書き
Re: テキストファイルの読み書き
何行ありますか?また、1行あたりいくつの数値が並んでいますか?数値が書かれたテキストファイル
最後の「列」でいいですね?合計は最後の行に追加します。
20,21,4,27 → 20,21,4,27,72
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: テキストファイルの読み書き
1行4列限定ならばこんなのでいいかも。
ただし、読み込むファイルの置き場所は注意が必要そうです。
開発環境によって置くべき場所が異なると思いますので。
当方の環境ではソースファイルと同じ場所でOKでした。
ただし、読み込むファイルの置き場所は注意が必要そうです。
開発環境によって置くべき場所が異なると思いますので。
当方の環境ではソースファイルと同じ場所でOKでした。
#include <stdio.h>
#include <stdlib.h>
#define N (4)
void inputData(int num[])
{
FILE *fp;
fp = fopen("read.txt", "r");
if (!fp) {
fprintf(stderr, "read file open error! operation denied.\n");
exit(EXIT_FAILURE);
}
fscanf(fp, "%d,%d,%d,%d", &num[0], &num[1], &num[2], &num[3]);
}
int getSumArray(int num[])
{
int sum, i;
for (sum = i = 0; i < N; i++) {
sum += num[i];
}
return sum;
}
void outputData(int num[], int sum)
{
FILE *fp;
fp = fopen("write.txt", "w");
if (!fp) {
fprintf(stderr, "write file open error! operation denied.\n");
exit(EXIT_FAILURE);
}
fprintf(fp, "%d,%d,%d,%d,%d", num[0], num[1], num[2], num[3], sum);
}
int main(void)
{
int num[N], sum;
inputData(num);
sum = getSumArray(num);
outputData(num, sum);
return EXIT_SUCCESS;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。