- ベストアンサー
c++ cmathとmath.h
お世話になります。c++を始めたばかりの者です。 cmathとmath.hの二つのヘッダーファイルは、それぞれ何をするときに使用するのでしょうか。 教本やネットを調べてもイマイチ理解できず、質問させていただきました。 ご回答よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- hanabutako
- ベストアンサー率54% (492/895)
関連するQ&A
- C++でのmath.hやstdio.hの使用につい
C++言語でソースコードをかくとき、ヘッダファイルでmath.hやstdio.hを使用するのはよくないのでしょうか cmathやcstdioを使用しなければならないのでしょうか あるいはmath.hやstdio.hよりも、cmathやcstdioの使用が推奨されているのでしょうか
- ベストアンサー
- C・C++・C#
- <math.h>があるのにsqrtが・・・
最初にあるプログラムを作っていたのですが、その祭sqrtでエラーが出てしまったので、別にsqrtを使う短いプログラムを作りました。それが以下のものになります。(test3.c) 「 #include<stdio.h> #include<math.h> int main(void){ int atai; double x=2.0; atai=(int)sqrt(x); printf("atai is %c",atai); } 」 sqrtが動作するか確かめる為のものです。このプログラム(test3.c)で以下のエラーが出てしまいました。 「 /tmp/ccqEejZ1.o(.text+0x4d): In function `main': test3.c: undefined reference to `sqrt' collect2: ld はステータス 1 で終了しました 」 ちなみにLinux(Fedora core 4)を使用しています。 初心者ということもありなぜエラーが出るのか分かりません。 ちなみに<math.h>を使用しないプログラムは普通に動作します。 解決方法をご存知の方がいらっしゃいましたらご教授下さいませ。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語でのアークタンジェント
Visual Studio C+でヘッダーファイルmath.hを用いて、atan2(,)を使用したいのですが、返り値の設定が-pi~piになっていて困っています。 この返り値の設定を変更したいのですが、どのファイルを変更すればいいのか、どのように変更すればいいのかがわかりません。 誰かわかる人がいたらアドバイスをお願いします。
- 締切済み
- C・C++・C#
- Makefile と <math.h>
C言語初心者です,Vine Linuxを使用しています. Makefileを用いたコンパイルをしたいのですが,あるcコード中にある,「sqrt」でコンパイラからエラー警告が出ます. エラーコード: gcc -o p001 pMain001.o pIo001.o pFnc001.o pFnc001.o(.text+0x214): In function 'sqr_Rt': : undefined reference to 'sqrt' collect2: ld はステータス 1 で終了しました make: *** [p001] エラー 1 Makefile: #Makefile for p001 CC = gcc p001: pMain001.o pIo001.o pFnc001.c $(CC) -o p001 pMain001.o pIo001.o pFnc001.o pMain001.o: pMain001.c pIo001.c p001.h $(CC) -c pMain001.c pIo001.c pIo001.o: pIo001.c p001.h $(CC) -lm pIo001.o pIo001.c pFnc001.o: pFnc001.c p001.h $(CC) -c p001.o pFnc001.c プログラムの概要: p001.hには,構造体定義と関数プロトタイプ宣言. pIo001.cには,キーからの入力と,出力の関数. pFnc001.cにはp001.hにある定義を用いた関数があり,この中にsqrtを使う関数がある. pMain001.cではpIo001.cとpFnc001.cにある関数を利用し,入出力を行う. Makefileの記述が間違っているような気がしてならないんですが,何せ勉強不足なものでよくわかりません. <math.h>はp001.hでインクルードしていますが,これは違いますか? 長文を読んで下さってありがとうございます,「ココおかしい」などの指摘お待ちしています;;
- ベストアンサー
- C・C++・C#
- C言語のヘッダファイル
前回のC言語のコンパイラの質問で、たくさんのご回答ありがとうございました。 おかげさまでコンパイラはなんとかなりそうですが、ひょっとしたらまた同じ質問を載せるかもしれません(^^; 今回はC言語のヘッダファイルを自分で作ってみたいんですが、よくわかりません。 microsoft visual studioのvisual c++付属のINCLUDEフォルダにある、stdio.hを開いてみたのですが、基本のprintf()やscanf()なども、どう定義されているか わからず終いでした。本などでもいまいち詳しく書いていなく(そう思うのは僕だけ?)、困っています。c言語のヘッダファイルとc++のヘッダファイルは やっぱり別ものなんでしょうか?ご回答おまちしております。
- ベストアンサー
- C・C++・C#
- C言語 正規表現 regex.h 利用できない
c言語を用いてCSVファイルの中に書かれている数字を集計するプログラムを作っています。 そこで正規表現(ワイルドカード)を使いたいと思いました。 調べた結果、regex.hのヘッダファイルを読み込むことで、正規表現を使用できる関数があることがわかりました。 しかし、regex.hをダウンロードしたのですがコンパイルエラーが起きてしまいます。 うまくregex.hをダウンロードできていないか、もしくはヘッダファイルを入れる場所がおかしいかだと思います。 もし使われている方がいましたらご教授お願いします。 私が使っているパソコンはwindowsXPです。
- 締切済み
- その他(ソフトウェア)
- C++での <iostream.h>と<iostream>とusingnamespaceの関係等を教えてください。
どうでもいい質問なのですが… C++で色々とソースを打っていると気づいたのです。 #include <iostream.h>とするとusing namespace std;の一文を書かなくてもコンパイルエラーになりません。 また、逆に#include <iostream>とするとusing namespace std;の一文が必要になります。 だから、h(ヘッダファイル)の.hは必要なのかな?と思い、#include <cstdlib.h>とするとコンパイルエラーになります。 なにか理屈がわかりません。コンパイラはVC++6.0です。よろしくご回答の方お願いいたします。
- ベストアンサー
- C・C++・C#
- C++の名前空間について
C++学習者です。 Visual Studio 2015 を使ってアブストラクトクラスを作ろうとしています。 教本どうりにコードを入力したのですが、間違いを表す赤い波線が出てきました。 添付してある写真のように、名前空間std にはstring が定義されていないようです。 ヘッダーファイル<string.h> をstd の一部として認識させるにはどうすればよいのでしょうか? 詳しい方、どうか教えてください。お願いします。
- ベストアンサー
- C・C++・C#
- ヘッダーの記述方法<XX.h>と"XX.h"の違い
タイトルのままですが、質問はヘッダーの書き方についてです。 読み込むヘッダーの記述方法は、<>と""の2通りであることは知っていますが、その違いがよく分かりません。 今まで見た参考書だと「<>は標準関数で、""は自作関数の場合に使う」と書かれているのですが、私の環境(VC++)だとstdio.hを""で括っても何の問題も無く、実行ファイルが出来ます。 そうなっているからなのかもしれませんが、どうもよく理解できませんので、回答お願いいたします。
- ベストアンサー
- C・C++・C#
- フリースクールに通う子どもの将来について、高校・大学の受験に影響はあるのか、そして社会人となったときに普通の学校に通った子となじむことができるのか気になります。
- フリースクールに通う子どもの将来に与える影響は大きいと言えます。高校・大学の受験には不利になる可能性があり、社会人としても学校に通った経験がないために適応が難しい場合もあります。
- フリースクールに通うことのメリットとデメリットがありますが、子ども時代の経験は将来に大きな影響を与えることが多いため、慎重に判断する必要があります。
お礼
ご連絡遅れ失礼しました。 ご回答ありがとうございました。 どちらでも使える、ということで安心しました。 参考にさせていただきます。