min_is の回答履歴

全8件中1~8件表示
  • includeが出来ない訳とは?

    みなさん、こんにちわ。 C++の勉強を始めたばっかりの弱小物ではありますが、 INCLUDEの件に関して、 分からないことが発生し、 検索方法が悪いのか?自己解決に至りませんでしたので、 お力をかしていただけると大変ありがたく質問させていただきました。 宜しくお願い致します。 他のディレクトリ下にあるhppファイルを includeしようと思っていたのですが、 コンパイルすると、 以下のとおりのお叱りをいただいてしまいます。 error: ‘test.hpp’ in namespace ‘dirA’ does not name a type  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 詳細は以下のとおりです。 ・ディレクトリ「dirA」の直下に 「test.hpp」 があり、 ・ディレクトリ「dirB」の直下に 「go.hpp」 がある。 「go.hpp」の先頭にて、 以下のとおり、 test.hppのインクルードを済ませてはいます。 ========================== [host]#cat go.hpp #include <dirA/test.hpp> dirA::test _mark; ========================== すごく簡単な内容でしたら大変恐縮ではありますが、 周囲にプログラム経験者が皆無な事もあり、 小さな事でも アドバイスいただけると大変ありがたい次第です。 どうぞ宜しくお願い致します。

  • コピーコンストラクタ

    コピーコンストラクタについて何か面白いネタがあったら教えてください

  • C++のデストラクタについて

    クラスAの変数Xをクラス外から変更した際に、クラスAのデストラクタに行くのですが、それは正しい処理なのでしょうか? 変数の変更はDXUTSetCallbackKeyboardでキーを押したときに変更されるようになっています。

    • noname#142252
    • 回答数5
  • 構造体とポインタ配列

    現在C言語の勉強をしております。 環境はwindowsXP、コンパイラはVC6.0です。 構造体と、ポインタの配列についてなのですが、 以下のような構造体が宣言されている時に、リスト構造にデータがいくつか入っているとします。 // 構造体 typedef struct address { unsigned char names[NAME_SIZE+1]; /* 名前 */ char tels[TEL_SIZE + 1]; /* 電話番号 */ struct address *prev; /* 前へのポインタ */ struct address *next; /* 次へのポインタ */ }Address, *a_pt; そのリスト構造を先頭要素か順番にポインタ配列に格納するには以下の方法ではおかしいでしょうか? /* ポインタ配列を用意する */ Address *array[MAX_COUNT]; /* top_ptは先頭のポインタです */ pt = top_pt; /* データがなくなるまで配列へ格納する */ while(pt != NULL){ array[count++] = pt; pt = pt->next; } /* 配列の最後はNULLとする */ array[count] = NULL; また、配列の中身を確認する方法としては、 printf("配列の中身:%s\n", array[0]->names); では、アドレスが表示されてしまうのかな・・と思ったら、accessViolationで落ちてしまいました・・・。 中身はどうしたらデバッグ出来ますでしょうか? そもそも、以下の2つは何か違いはありますか? Address *ptA[100]; a_pt ptB[100]; 皆さん、どうかよろしくお願いいたします。 理解不能な場合はご指摘ください。

    • ya-cha
    • 回答数4
  • 記憶クラス(関数の引数をなくして外部変数を利用しての書き換え)

    /*入力した価格の合計とその税込価格を求めるプログラム*/ #include<stdio.h> #define TAX 0.05 float Getsyouhizeigaku(float); void main(void) { float price, total = 0.0; float zeigaku; while(1){ printf("Price? (finish -> -1)\n"); scanf("%f", &price); if(price == -1.0) break; total += price; } zeigaku = Getsyouhizeigaku(total); printf("価格 %.0f 円の場合, 消費税込み価格は %.0f 円\n", total, zeigaku); } float Getsyouhizeigaku(float kakaku) { float zeikomikakaku; zeikomikakaku = kakaku * (1.00 + TAX); return(zeikomikakaku); } このプログラムを関数の引数(価格を表す実数)をなくし、外部変数を利用して同じ処理を行うようにプログラムを変更せよ。 という問題で #include<stdio.h> #define TAX 0.05 float Getsyouhizeigaku(void); void main(void) { float price, total = 0.0; float zeigaku; while(1){ printf("Price? (finish -> -1)\n"); scanf("%f", &price); if(price == -1.0) break; total += price; } zeigaku = Getsyouhizeigaku(); printf("価格 %.0f 円の場合, 消費税込み価格は %.0f 円\n", total, zeigaku); } float Getsyouhizeigaku(void) { extern float total; float zeikomikakaku; zeikomikakaku = total * (1.00 + TAX); return(zeikomikakaku); } と変更してコンパイルしたところ「'_total'が未解決です」と出ました。何が問題なのかわかりません。 わかる方いましたらよろしくお願いします。

  • 記憶クラス(関数の引数をなくして外部変数を利用しての書き換え)

    /*入力した価格の合計とその税込価格を求めるプログラム*/ #include<stdio.h> #define TAX 0.05 float Getsyouhizeigaku(float); void main(void) { float price, total = 0.0; float zeigaku; while(1){ printf("Price? (finish -> -1)\n"); scanf("%f", &price); if(price == -1.0) break; total += price; } zeigaku = Getsyouhizeigaku(total); printf("価格 %.0f 円の場合, 消費税込み価格は %.0f 円\n", total, zeigaku); } float Getsyouhizeigaku(float kakaku) { float zeikomikakaku; zeikomikakaku = kakaku * (1.00 + TAX); return(zeikomikakaku); } このプログラムを関数の引数(価格を表す実数)をなくし、外部変数を利用して同じ処理を行うようにプログラムを変更せよ。 という問題で #include<stdio.h> #define TAX 0.05 float Getsyouhizeigaku(void); void main(void) { float price, total = 0.0; float zeigaku; while(1){ printf("Price? (finish -> -1)\n"); scanf("%f", &price); if(price == -1.0) break; total += price; } zeigaku = Getsyouhizeigaku(); printf("価格 %.0f 円の場合, 消費税込み価格は %.0f 円\n", total, zeigaku); } float Getsyouhizeigaku(void) { extern float total; float zeikomikakaku; zeikomikakaku = total * (1.00 + TAX); return(zeikomikakaku); } と変更してコンパイルしたところ「'_total'が未解決です」と出ました。何が問題なのかわかりません。 わかる方いましたらよろしくお願いします。

  • 書式付標準出力をするには??

    こんにちは テキストファイルを読み込んで .hファイルに書き込んでいるものなのですが.... #include <stdio.h> #define MAX 256 int main() { FILE *in, *out; char *p, buf[MAX]; int lhs, in_quote; in = fopen("moutput.txt", "r"); if (in == NULL) { printf("Cannot open sample.txt\n"); return 1; } out = fopen("moutput.h", "w"); if (out == NULL) { printf("Cannot open sample.h\n"); return 1; } while (fgets(buf, MAX, in) != NULL) { lhs = 1; in_quote = 0; for (p = buf; *p != '\0'; p++){ if (*p == '=') { lhs = 0; fputc('\n', out); } else if (*p == '"'){ if (in_quote) { in_quote = 0; fputc('\n', out); } else in_quote = 1; }else if (lhs || in_quote){ fputc(*p, out); } } } } 上記のプログラムでfputc(*p,out)で出力させている 部分があると思いますが。 実はこれを書式付で出力させたいと思っています。 今現在読み込んでいるファイルは "POINT_a"="POINT_b"+1000*"POINT_D" で出力結果は POINT_a POINT_b POINT_D なのですが これを VALUE: POINT_a VALUE: POINT_b VALUE: POINT_D にしたいのですが fputcのところをどうしたらいいでしょうか?? ご教授よろおしくおねがいします。

  • ファイルの入出力について教えてください。

    初心者です。よろしくお願いします。 私は今、ErgoVista(EarthView)というソフトで画像を表示するために、datファイルを入力して、x00ファイルを出力するプログラムを作っています。datファイルをエディタで表示すると2行45万列の複素データが出てきます。 とりあえず何の処理もせず、ErgoVistaファイル入出力の例から、下のようなプログラムを作ったのですが、実行ができなく 「unknown software exception(0xc00000fd)がアプリケーションの0x00401997で発生しました」と出てきました。 初心者でして、なんで実行ができないのかまったくわかりません。誰か教えてください。 下のソースファイルで間違っているとこがありましたら、教えてもらえると幸いです。 #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> void Make_Header(char*,int,int); //ヘッダファイル書き出し関数,このまま使用 #define T 451584 main() { /*変数宣言*/ int i; long j; double data1[2][T]; FILE *fp_i, *fp_o; /*入力*/ printf("data in start\n"); fp_i = fopen("200113-HH-100a-IFFT.dat", "r"); for(j = 0; j < T; j++){ for(i = 0; i < 2; i++){ fread(&data1[i][j],sizeof(double),1,fp_i); } } //fread(代入する変数ポインタ,データ型サイズ,データ数,fp_i); fclose(fp_i); //開いたらちゃんと閉じる /*************************************** 処理部分 ***************************************/ /*出力*/ printf("write in start\n"); fp_o = fopen("200113-HH-100a-IFFT1.x00", "wb"); //ファイルオープン,wbはオープン形式でバイナリファイル書き出し fwrite(&data1[i][j],sizeof(double),1,fp_o); //出力部分,ループでまわしたり fclose(fp_o); //開いたらちゃんと閉じる Make_Header("200113-HH-100a-IFFT1.x00",2,T); //ErgoVistaのヘッダファイル情報を出力する関数,?pixel(横数)とline(縦数)を出入? return 0; } /* ヘッダ情報書きこみのサブルーチン このまま使用*/ void Make_Header(char FN[], int pixel, int line) { char hd[40]="", text[40]; FILE *fhd; strncat(hd, FN, strlen(FN)-3); strcat(hd, "hdr"); if((fhd = fopen(hd, "w")) == NULL){ printf("error : cannot open [%s] (header file)\n", FN); exit(1); } fprintf(fhd, "FILE_TYPE = IMAGE \n"); fprintf(fhd, "IMAGE_LINES = %d \n",line); fprintf(fhd, "LINE_SAMPLES = %d \nEND\n",pixel); fclose(fhd); }

    • andre07
    • 回答数3