エラーが二つ出てしまいます。
自分ではよく分からなく、図々しく質問しました。
誰か助けてください。


#include<iostream>
using namespace std;

double fan(double,double angle=360.0); /* angleはデフォルト360 */

double fan(double r, double angle){
return 3.1415926*r*r*angle/360.0; /* 面積を返す */
}

int main(void){
double r,angle;

cout << "半径を入力してください。 : ";
cin >> r;
cout << "角度を入力してください。 : ";
cin >> angle;

cout << "半径 : " << r << " 角度 : " << angle << endl;
cout << "面積 : " << fan(r,angle) << endl << endl;
cout << "半径 : " << r << " の円なら" << endl;
cout << "面積 : " << fan(r) << endl;

return 0;
}

このQ&Aに関連する最新のQ&A

A 回答 (4件)

> こういうのがでます。


> Cpp3.cpp(4) : error C2018: 文字 '0x81' は認識できません。
> Cpp3.cpp(4) : error C2018: 文字 '0x40' は認識できません。

コメント以外のところに漢字の空白が入ってます。

> double fan(double,double angle=360.0); /* angleはデフォルト360 */

の行のセミコロンの後が、そうです。普通の空白やTABにして下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。やっと分かりました。

お礼日時:2001/09/13 11:18

エラーメッセージでは「0x8140が認識できない」と言っているので、全角の空白がプログラム内のどこかに入っていませんか?

    • good
    • 0
この回答へのお礼

ありがとうございました。やっと分かりました。

お礼日時:2001/09/13 11:19

ソースを見る限り、特におかしなところはありませんが、



> エラーが二つ出てしまいます。

というところから想像するに、以下の二行でコンパイルエラーが出ているのでは
ないでしょうか?

> #include<iostream>
> using namespace std;

この二行の表記は、ANSI C++ で規格が定まったときの表記で、それ以前の C++
コンパイラでは、以下のような表記になります。

#include <iostream.h>
/* using namespace は書かない */
    • good
    • 0

あなたの開発環境は何ですか?


OSとOSのリビジョン、開発環境のバージョンなどがわかりません。また、どんなエラーメッセージが出ているのでしょうか?

共通事項として何点か。
・C++なのになぜ
---
double fan(double,double angle=360.0);
double fan(double r, double angle){
以下省略、
---
のような「古いプロトタイプ宣言」を行っているのですか?
・C++のコンパイラを使っていますか?
・C++に必要なライブラリはリンクしていますか?

少なくとも私の手元の環境では問題ありません。
Linux + G++(egcs-2.91.66)

この回答への補足

こういうのがでます。
Cpp3.cpp(4) : error C2018: 文字 '0x81' は認識できません。
Cpp3.cpp(4) : error C2018: 文字 '0x40' は認識できません。
cl.exe の実行エラー

補足日時:2001/09/12 00:36
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

  • C     

このQ&Aと関連する良く見られている質問

QJames Taylor「Steamroller Blues」の耳コピ

楽譜を買うお金が無く、James Taylor「Steamroller Blues」を耳コピしようとしているのですが、変則的なチューニングをしているみたいで色々試してみましたが音が合いません。。。

6弦が半音下げチューニングぐらいしか聞き取れませんでした。

もしご存知の方いればご教授お願い致します。

Aベストアンサー

「Steamroller Blues」はノーマルチューニング3カポEフォームでプレイしていると思われます。急いで回答しているので、確証は持てませんが、昔自分はそれでコピーしました。マイナー9thや9thコードが出てくるのがよくあるブルースとは違いますが、それ以外はオーソドックスなブルース進行です。本人の様々なビデオを見ても変則チューニングをしているようには見えません。確認できれば又回答します。

Qstd::cout << p と std::cout << *p の違

std::cout << p と std::cout << *p の違いは?

VC++でコードを書きながらC++を学んでいます。
ポインタで疑問に思ったことがあるので質問させて下さい。

int* p;
int n = 100;
p = &a;

上記のように変数を宣言・代入した場合、
std::cout << p と std::cout << *p のどちらでも"100"と表示されます。
これら二つの違いは何でしょうか?
本来*pとすべきところをpにしてもVC++が気を利かせて
&pのアドレスに入っているデータを表示してくれているということでしょうか?

Aベストアンサー

No.1氏の回答にあるコードを元に答えます。

>この場合&pでもアドレスが表示されると思うのですが、
>「&p」と「p」の違いは何でしょうか?
pはaのアドレス。
&pはpのアドレス。
(「p = &a」では、どこのアドレスを渡しているのか考えてみて下さい)


「&p」と「p」の違いというのが参照とポインタの違いを聞いているのだとしたら、constのポインタ==参照型で良かったと思います。
p = &a; //OK
&a = p; //error
int* const p2 = p;
p2 = &a; //error

QフェンダーBLUES JUNIORのスピーカーをJENSEN C12N

フェンダーBLUES JUNIORのスピーカーをJENSEN C12N に交換したいのですが可能でしょうか?
電気の知識は皆無なのでスピーカーだけ買って楽器店に持ち込もうかと思っていますが、自分でできるものなのでしょうか?
よろしくお願いします。

Aベストアンサー

可能です。(同じ口径、取り付けピッチは標準化されている。)
誰でも出来ます。
接続は差込式、少しゆすりながら引く、プライアー等で電線圧着基部をくわえて引いても良い。
手順は自ずと解ります。

Q double (*foo)(double);

 double (*foo)(double);
C のコードで上のように宣言されたとき,foo は何を表していますか?

プログラミング初心者です.
よろしくお願いします.

Aベストアンサー

関数ポインタですね。
状態変数等によって呼び出し関数を変える時に、関数ポインタのテーブルを引っ張ってきて呼び出したりすることがあります。

double (*foo[])(double) = {func1, func2, func3};

とかあった場合
int idx = 1;
double param = 1.1;
double ret;
ret = (*foo[idx])(param);

とすれば

ret = func2(param);

とするのと同じことです。

QT-01C PCから移動したPDF閲覧方法について

REGZA Phone T-01Cを使用しています。

PCとT-01CをUSBデータケーブルで接続し
PCからPDFファイルを移動させ、携帯端末より
PDFファイルを参照しようと試みております。

そこでご質問させて頂きたいのですが
どの場所にPDFファイルを格納すればよいでしょうか。

AITIA
Android
arcsoft
DCIM



とフォルダがあるのですが、どのフォルダに格納すればよいかわかりません。

ご教授頂けると大変有難いです。

Aベストアンサー

PDFを見るアプリのフォルダがあればそこでもいいですし、
特に特定のフォルダじゃないとダメということはありません。

SDCARDにPDF-FILE とでもフォルダ作って分かりやすく
保存すれば良いですよ。

Qreturn 0; return 1; まで同じ

#include <stdio.h>
int main()
{
printf("%d %c\n", 65, 65);
return 0;
}
 コンパイル後は
65 A
 return 1;も同じでした。
しかし
 return 2;すると
 Exited: ExitFailure 2  終了しました:出口の失敗2 となります。
 2以上でしたら、出口が塞がるのでろうぐらいしかわかりません!?
 
 どんなバクなのでしょうか!?
 よろしくお願いします。

Aベストアンサー

C 言語の仕事は「0 なり 1 なり 2 なりを返す」までであり, その値にどう対処するかは (「C のプログラム」としては処理を完全に終了しているので) C のあずかり知らぬところです.

なので, 「どんなバクなのでしょうか!?」というのはあなたの使っている OS なりシェルなりなんなりに聞いてください.

QC++ BuilderでPDF出力

C++ Builder3を使ってます。印刷する代わりに、PDFファイルとして出力する方法があると聞いているんですが、ソースコードをどのように記述したらよいのかご存知の方がいらっしゃいましたら教えていただけないでしょうか。
よろしくお願いいたします。

Aベストアンサー

PDFはAdbeアクロバットで出力されるファイル形式です。インターネット上でみられるAcrobat readerはこのリーダー部のみを切り出したものです。
PDFファイルを生成したい場合、標準的には
Adbe Acrobatを購入してインストールすると、
Adbe PDF
という仮想プリンタが追加されます。(古いバージョンだとPDF Writerでしょうか)
あとは、作成されたプログラムからこの仮想プリンタを指定して普通どおり印刷すれば、PDFが作成されます。

最近ではクセロPDF
http://xelo.jp/xelopdf/
というソフトがフリーであるようです。
私はつかったことがないのですが、結構利用者もおられるようす。
見当されてみるのもよいかもしれません。

参考URL:http://www.adobe.co.jp/products/acrobat/main.html

QC++ : cout << (数字) で実行時エラーが発生する理由

ある特定の位置でcout を用いて数字を表示しようとするとエラーが発生してしまいます。

具体的には以下の関数内でのことなのですが、原因の分かる方がいましたら解答お願いします。

受け取った文字列を逆順にする関数です。



----------------------------------------------------------

void rev_str(char *a)
{
int length = 0;


cout << length; // ここでエラーが発生


while(true) {
if(*(a + length) == '\0') break;
length++;
}
for(int i = 0; i < length / 2; i++) {
char temp = a[i];
a[i] = a[length - i - 1];
a[length - i - 1] = temp;
}
}



---------------------------------------------------------


エラーの発生する部分ですが、数字ではなく文字・文字列なら問題なく表示されます。

このコードでは変数 length を表示しようとしていますが、length でなくても、またどのような『数』でも『この関数内』で cout を使用するとエラーが発生します。

この関数に何か間違いがあるのではないかと思うのですが、どうにも見つけることが出来ません。
コード全体はこの下に掲載します。

cout に何か制約があるのでしょうか。それとも、やはりコードのどこかに誤りがあるのでしょうか。わかる方がいましたら、解答お願いします。




全コード
------------------------------------------------------
#include <iostream>
#include <cstring>
using namespace std;

void rev_str(char *a);
void rev_str(const char *source, char *des);

int main()
{
char a[80], b[80];
strcpy(a, "hello, world!");
rev_str(a, b);
rev_str(a);
cout << a << "\n";
cout << b << "\n";

return 0;
}

void rev_str(char *a)
{
int length = 0;

cout << length;

while(true) {
if(*(a + length) == '\0') break;
length++;
}
for(int i = 0; i < length / 2; i++) {
char temp = a[i];
a[i] = a[length - i - 1];
a[length - i - 1] = temp;
}
}

void rev_str(const char *source, char *des)
{
char *a = (char*)malloc(sizeof(source));
strcpy(a, source);
rev_str(a);
strcpy(des, a);
free(a);
}

ある特定の位置でcout を用いて数字を表示しようとするとエラーが発生してしまいます。

具体的には以下の関数内でのことなのですが、原因の分かる方がいましたら解答お願いします。

受け取った文字列を逆順にする関数です。



----------------------------------------------------------

void rev_str(char *a)
{
int length = 0;


cout << length; // ここでエラーが発生


while(true) {
if(*(a + length) == '\0') break;
length++;
}
for...続きを読む

Aベストアンサー

> void rev_str(const char *source, char *des)
> {
>  char *a = (char*)malloc(sizeof(source));
>  strcpy(a, source);
>  rev_str(a);
>  strcpy(des, a);
>  free(a);
> }
の中でmallocで確保されるサイズは sizeof(source)なので
char型のポインタサイズ ... 32Bit環境なら4バイトってことになります
その領域に対して strcpyを実行するので4バイト以上の文字列をコピーすればメモリー領域が破壊されます

NULL終端の文字列が対象なら
char *a = (char*)malloc( strlen( source ) );
といった具合に変更してみましょう

Qこの質問は、PDFファイル・C・著作権・JIS・きかくに関係あります

最終的にしたいことは、
C言語の規格(日本語)が印刷されたものが手に入ればいい(自分で印刷するのでもOK)のですが、
どうすればよいでしょうか。

C言語の日本での規格はJIS X3010というものです。

http://www.jisc.go.jp/
日本工業標準調査会 というサイトの「データベース」で「X3010」で検索すると、「JIS詳細表示」というページが表示されまして、
X3010_01.pdfというPDFファイルがダウンロードできます。

(さきほどやってみたら、勝手にファイルを開こうとするようだ。Acrobat Readerが入っていなかったから、ファイルを保存できたのかも知れない。)

ダウンロードしたpdfファイルをAcrobat Reader5.0で開きますと、内容を読むことができます。
それで印刷できればよいのですが、印刷ができないような設定がされているのでしょうか(?)、メニューがきえてしまって印刷できません。


正確なことはよく知らないのですが。
・JISの規格は「JIS規格票」というものに印刷されて発行されているらしい。
・JIS規格票とは別に、JISハンドブックというJISの規格をまとめたような本があるのだが、その中にC言語の規格は入っていないようだ。
・JISの規格には著作権があるらしい。
・「X 3010:93」というものとそれを補完(?)するような「X 3010:96」というものがあるらしいのだが、前者を入手すれば後者を入手しなくて良いのか(前者に後者は織り込み済みなのか)はよくわからない。


その規格票というものを入手するには、どうすればよいのでしょうか。
「政府刊行物センター」で売っているんでしょうか。

図書館などでコピーできればそれでもいいのですが…
私が行った図書館には、「JISハンドブック」はあったんですが…


以上いろいろ書きましたが、わかることだけで結構なんでお教えください。
(例えばJISのことはわからなくても、pdfファイルのこととか。)

最終的にしたいことは、
C言語の規格(日本語)が印刷されたものが手に入ればいい(自分で印刷するのでもOK)のですが、
どうすればよいでしょうか。

C言語の日本での規格はJIS X3010というものです。

http://www.jisc.go.jp/
日本工業標準調査会 というサイトの「データベース」で「X3010」で検索すると、「JIS詳細表示」というページが表示されまして、
X3010_01.pdfというPDFファイルがダウンロードできます。

(さきほどやってみたら、勝手にファイルを開こうとするようだ。Acrobat Reader...続きを読む

Aベストアンサー

ご希望の規格表は、下記URLで確認できました。
わたしは、いつもここから購入しました。

2行目の購入の仕方のページでpdfファイルの方をクリックすると注文書が表示されます。(アクロバットリーダーは必要です。リーダーは無料ですから入手しておくと便利です。)
それでファイル(F)>印刷(P)で印刷し、記入したらFAXで注文します。(これは印刷できそうです。)
私は、前に購入した時にもらった物を使用しましたが。
支払方法は、そこに記載がありますが指定できます。

私の場合は、時々業務で使用しましたので常時、予納金にしておきました。
在庫は、確認しておりませんので、一応電話で確認された方が良いかもしれません。

参考URL:http://www.jsa.or.jp/catalog/catalog09.asp,http://www.jsa.or.jp/catalog/jis_srch.asp

Q「vector< vector>からdouble*への

「vector< vector<double>>からdouble*への変換につきまして」
C++の行列計算のライブラリとして以下の関数を使うことになったのですが、
//matA*vecB=vecX
void CalcMatrix(int rows, double* matA, double* vecB, double* vecX);
この引数として
vector< vector<double>>
で定義した変数を渡す方法はありますでしょうか?
もし御座いましたらご教授御願い致します。

Aベストアンサー

じゃあ無理. 「1つの vector の中」なら要素のアドレスが連続することを保証しているが, 「複数の vector の中で要素がひとつながりになる」ことはだれも保証しない.


人気Q&Aランキング

おすすめ情報