ファイルの数値との演算

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
oukasei

ファイルの数値との演算

#1

投稿記事 by oukasei » 16年前

誰かファイルから数値を取ってきたものとの演算のやり方教えてください。

Dixq (管理人)

Re:ファイルの数値との演算

#2

投稿記事 by Dixq (管理人) » 16年前

ファイルからとってきた数値であれ、キーボードからとってきた数値であれ、予め変数に格納しておいた数値であれ、
演算の仕方は同じです。
今、どのような状態で困っていらっしゃるかもっと詳しく書いていただければより適確なアドバイスが出来るかもしれません。

ファイルから読み込んだデータで、すぐには計算できなさそうな状況と言うと・・・。
文字列にデータが入っているような状態でしょうか?
もし文字列にはいっているデータを数値データに変換するなら、
atoi関数やatof関数を使います。
文字コードについて理解していれば、この関数は簡単に作れるので、もし余力があれば実装してみて下さい。
以下、そのサンプルです。
#include <stdio.h>
#include <stdlib.h>

int main(void){
	char *str = "100";
	int num;
	
	num = atoi(str);
	num += 100;
	printf( "%d\n", num ); 

	return 0;
}
もともと100は文字列だったデータですが、int型に変換したことで、さらに100を足して200と表示出来ます。

lbfuvab

Re:ファイルの数値との演算

#3

投稿記事 by lbfuvab » 16年前

ファイル内にどういう形式で数値があるのかを示して下さい。

たかぎ

Re:ファイルの数値との演算

#4

投稿記事 by たかぎ » 16年前

> atoi関数やatof関数を使います。

atoiやatofは安全ではないので、できればstrtolやstrtodを使う方がよいでしょう。

ハルキヨ

C言語の問題で質問でまた質問です。

#5

投稿記事 by ハルキヨ » 16年前

ちょっとつまったのでお願いします。

今日の日付(年月日)を入力し、自分の誕生日(年月日)を入力したら、年齢を示すプログラミングが作りたいです。

現在
#include<stdio.h>
int main(void)
{
 int year,month,day,year2,month2,day2;

printf("今日の日付を入力してください。\n");

printf("年を入力して。 例(1989)\");
scanf("%d",&year);

printf("生まれ月を入力して。\n");
scanf("%d",&month);

printf("日を入力して。\n")
scanf("%d",&day);
のように一つずつ入力させるようになっているのですが、まとめて入力させるにはどうしたらいいのでしょうか?

今日の年月日を入力してください。←のように表示させるようにして
1987 1 1   のように入力できるようにしたいです。

お願いします。

SCI

Re:C言語の問題で質問でまた質問です。

#6

投稿記事 by SCI » 16年前

scanf("%d %d %d", ...)でできませんか?

ハルキヨ

Re:C言語の問題で質問でまた質問です。

#7

投稿記事 by ハルキヨ » 16年前

>SVIさん
その場合 scanf("%d%d%d",&year,&month,&day);
の形でいいんでしょうか?

ハルキヨ

Re:C言語の問題で質問でまた質問です。

#8

投稿記事 by ハルキヨ » 16年前

#include<stdio.h>
int main(void)
{
 int year,month,day,year2,month2,day2,old;

printf("今日の日付を入力してください。\n");
scanf("%d%d%d",&year,&month,&day);

printf("誕生日を入力してください。\n");
scanf("%d%d%d",&year2,&month2,&day2);

old=year-year2;←←ここの計算部分がよくわかりません。

printf("%d歳です\n",old);

return 0;
}
ここまでできていますが下記のコンパイルエラーがでます。
6-33.c: In function ‘main’:
6-33.c:4: error: stray ‘\343’ in program
6-33.c:4: error: stray ‘\200’ in program
6-33.c:4: error: stray ‘\200’ in program

どなたかお願いします。

SCI

Re:C言語の問題で質問でまた質問です。

#9

投稿記事 by SCI » 16年前

スペースを入れなければなりませんよ。
というか、コンパイルして動作確認してみてください。
私、今はちょっとテストできないので・・・

SCI

Re:C言語の問題で質問でまた質問です。

#10

投稿記事 by SCI » 16年前

なんか無効な文字とか入ってません?

計算に関してはC言語に無関係なので、自分で方程式を解いてください。

SCI

Re:C言語の問題で質問でまた質問です。

#11

投稿記事 by SCI » 16年前

補足
無効な文字というのは全角スペースなどです。

ハルキヨ

Re:C言語の問題で質問でまた質問です。

#12

投稿記事 by ハルキヨ » 16年前

SCIさん ありがとうございました。
解くことができました。

閉鎖

“C言語何でも質問掲示板” へ戻る