ページ 1 / 1
ファイルの数値との演算
Posted: 2008年12月22日(月) 03:04
by oukasei
誰かファイルから数値を取ってきたものとの演算のやり方教えてください。
Re:ファイルの数値との演算
Posted: 2008年12月22日(月) 03:12
by Dixq (管理人)
ファイルからとってきた数値であれ、キーボードからとってきた数値であれ、予め変数に格納しておいた数値であれ、
演算の仕方は同じです。
今、どのような状態で困っていらっしゃるかもっと詳しく書いていただければより適確なアドバイスが出来るかもしれません。
ファイルから読み込んだデータで、すぐには計算できなさそうな状況と言うと・・・。
文字列にデータが入っているような状態でしょうか?
もし文字列にはいっているデータを数値データに変換するなら、
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と表示出来ます。
Re:ファイルの数値との演算
Posted: 2008年12月22日(月) 03:14
by lbfuvab
ファイル内にどういう形式で数値があるのかを示して下さい。
Re:ファイルの数値との演算
Posted: 2008年12月22日(月) 07:25
by たかぎ
> atoi関数やatof関数を使います。
atoiやatofは安全ではないので、できればstrtolやstrtodを使う方がよいでしょう。
C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 00:53
by ハルキヨ
ちょっとつまったのでお願いします。
今日の日付(年月日)を入力し、自分の誕生日(年月日)を入力したら、年齢を示すプログラミングが作りたいです。
現在
#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 のように入力できるようにしたいです。
お願いします。
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 00:58
by SCI
scanf("%d %d %d", ...)でできませんか?
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 01:01
by ハルキヨ
>SVIさん
その場合 scanf("%d%d%d",&year,&month,&day);
の形でいいんでしょうか?
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 01:13
by ハルキヨ
#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
どなたかお願いします。
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 01:14
by SCI
スペースを入れなければなりませんよ。
というか、コンパイルして動作確認してみてください。
私、今はちょっとテストできないので・・・
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 01:17
by SCI
なんか無効な文字とか入ってません?
計算に関してはC言語に無関係なので、自分で方程式を解いてください。
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 01:19
by SCI
補足
無効な文字というのは全角スペースなどです。
Re:C言語の問題で質問でまた質問です。
Posted: 2009年1月08日(木) 21:52
by ハルキヨ
SCIさん ありがとうございました。
解くことができました。