トップページ⇒tech
1001コメント309KB

C++相談室 part19

■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)vNGNG
C++に関する質問はこちらへどうぞ。
ただし質問の前にFAQに一通り目を通してください。
また、テンプレートライブラリ(STL含む)に関する質問は
専用の別スレへどうぞ。

過去スレ、関連スレ、関連リンクなどはこちら>>2-10
0685デフォルトの名無しさんNGNG
>>684
ここ含めて5箇所にマルチポスト。
その内2つがスレ立て。
0686デフォルトの名無しさんNGNG
> report2-3.c
 
頼むから夜中に爆笑させないでくれえ〜。
0687662NGNG
>>682
A::short_name が外から使えてしまうのが
ちょっと気持ち悪いんです。
0688デフォルトの名無しさんNGNG
>>687
んなこと言ったら、HOKJELKDSLKHLKFJHLEBIFBSDIFが使える時点でダメなんじゃねーの?
0689203NGNG
>>688
HOKJELKDSLKHLKFJHLEBIFBSDIF::hoge が
A::short_name::hoge としても使えるのは気持ち悪くありませんか?

 namespace ___HOK = HOKJELKDSLKHLKFJHLEBIFBSDIF;
とか、「外部で使わないでー」というお願いを込めた名前にする、
というのならまだ使えるかも?
0690689=662NGNG
番号間違えました。
0691デフォルトの名無しさんNGNG
>>689
じゃぁboostにちなんでdetailの中でコソコソやっとけ。
0692デフォルトの名無しさんNGNG
>>662
ヘッダファイルでusingを使うのは行儀が悪いのでやめた方がいい。
名前空間の名前を短くするか、そうでなければ全部書いてください。
コピペ使えばどうってことのない手間でしょう。

# どうでもいいが「名前空間の名前」って言い方はちょっと変か……
0693662NGNG
>>692
レスありがとうございます。

>ヘッダファイルでusingを使うのは行儀が悪いのでやめた方がいい。
非常に同感です。
使ってみて、強く実感しています。

>名前空間の名前を短くするか、そうでなければ全部書いてください。
>コピペ使えばどうってことのない手間でしょう。
エイリアスを使おうが、元の名前を短くしようが、
結局 using を使わない以上何らかの NAMESPACE:: を書かないといけないんですよね。
大人しく書く事にします。
0694デフォルトの名無しさんNGNG
下のプログラムを組んでみて疑問がありまする。
基底クラスのインスタンスを渡しているのに、派生クラスにキャストすると
派生クラスのメンバ関数foo2が呼べるのはなぜですか?(最初は落ちるかと思ったんだけど…)

#include <iostream>

class A {

};

class B : public A {
    public:
        void foo(A* a) {
            B *b = static_cast<B*>(a);
            b->foo2();
        }

        void foo2() {
            std::cout << "B::hoge()" << std::endl;
        }
};


int main(int argc, char* argv[]) {
    A a;
    B b;
    b.foo(&a);

    return 0;
}
0695デフォルトの名無しさんNGNG
>>694
もしBにメンバ変数の追加があって、そのfoo2がそれを参照してるならやばいよ。
たまたまBで拡張された部分をアクセスしない関数だから大丈夫なだけ
0696デフォルトの名無しさんNGNG
std::mapから、要素を完全に取り除きたい場合はどうすればいいですか。
std::map<std::string, long> testMap;
testMap["111"] = 111;
testMap["222"] = 222;
testMap["333"] = 333;
testMap.erase("222");
こうやって要素を消しても、iteratorでmapをなめると、"222"をキーに持つ要素が出てきてしまいます。
0697デフォルトの名無しさんNGNG
悪質な釣り師見参
0698動画直リンNGNG
http://homepage.mac.com/hitomi18/
0699696NGNG
すみません。勘違いしてました。

ちょっと別の質問なんですけど、mapの要素に対して[]を使ってアクセスすると、
なぜか要素のコンストラクタが呼ばれるようです(find()では呼ばれない)。
これってどういう事でしょうか。mapの要素に[]でアクセスするのは効率が悪いんですか?
0700デフォルトの名無しさんNGNG
700
0701デフォルトの名無しさんNGNG
>>699

> ちょっと別の質問なんですけど、mapの要素に対して[]を使ってアクセスすると、
> なぜか要素のコンストラクタが呼ばれるようです(find()では呼ばれない)。

なぜって、仕様読んだのか?
[]は新しい要素を代入することが出来る。

> これってどういう事でしょうか。mapの要素に[]でアクセスするのは効率が悪いんですか?

効率が悪いとしたら、使い方が間違っとる。
0702696NGNG
>>701
だから、例えば
std::map<std::string, CMyClass> theMap;
theMap["test"];//追加される
theMap["test"];//参照
theMap["test"];//参照
という感じで、追加されるのは最初の一回目だけで、後は参照するだけ
だと思っていたんですが、二回目以降もCMyClassのコンストラクタが呼ばれてます
theMap["test"]
theMap.find("test");
theMap.find("test");
こういうやり方ならコンストラクタは一回しか呼ばれません
0703デフォルトの名無しさんNGNG
Cを飛ばしていきなりC++始めたいときは、やっぱり「やさしいC++」を読むのがいいんでしょうか?
0704デフォルトの名無しさんNGNG
>>703
他の言語の経験は?
0705デフォルトの名無しさんNGNG
>>703
推薦図書/必読書のためのスレッド PART 10
http://pc2.2ch.net/test/read.cgi/tech/1051496506/l50
0706デフォルトの名無しさんNGNG
>>702
operator[] が
 return insert( make_pair(key, val()) )->second
で実装されてる環境(VC6,7,Bcc5など)だと二回目以降も
デフォルトコンストラクタがよばれるし、
 iterator i = find( key )
 return ( i != end() ? return i->second : insert( make_pair(key, val()) )->second);
と実装されてれば(gcc3など)一回しか呼ばれないし。処理系による。
0707696NGNG
>>706
え!!operator[]ってそうだったの!?
じゃあ確実に参照だけしたいって場合はfind()->secondするのが良いんですね
わかるりましつ
0708デフォルトの名無しさんNGNG
wchar_tってのがあるじゃないですか。例えば、
>wchar_t wt[256];
>_wcspcpy(wt, L"あ あ あ");
こういう使い方。
この場合、wtの中身は、UTF-8ですか?UTF-16ですか?
0709デフォルトの名無しさんNGNG
文字コードは処理系や環境に依存すると思うけど・・・
0710デフォルトの名無しさんNGNG
>>708
まずUTF-8みたいなマルチバイトではないだろうが
UTF-16かどうかは実装依存
Visual C++だとUCS-2, glibcだとUCS-4とかじゃなかった?
0711708NGNG
すげー、レス嬉しい >>709 >>710

じゃあぁ、コンパイラ調べれば分かりますね。ちなみにBCBでつ。

DBにUNICODE入れようと思うのですが、UTF-8/16混在させたら読むに読めないから怖いですね。

UCSってのが何か良く分からないです。
0712デフォルトの名無しさんNGNG
>>711
このへん読むとヨシ
http://euc.jp/i18n/charcode.ja.html#chap7

UCSは文字集合で、UTFは交換用符号だが
UTF-16というと、同じ2バイトでもUCS-4の文字集合を表現するために
16bit=1文字とは限らないので扱いにくい。
UCS-2といった場合は必ず16bit=1文字で表現できる。

で、BCBならWin32だろうけど、それならVCと同じじゃないかな。
0713711NGNG
>>712
あ、そうなんだ。
じゃぁ、DBにはUCS-2で入れといて、
HTMLなんかにするときにUTFに変えればよさげ、
と思ったが自信無い。
0714デフォルトの名無しさんNGNG
UTF-8/UTF-16 使うと、既存の W_Char 用関数が全滅するので、結構大変だよ。
今までは 16bit/2byte 渡せばすむところを、w_char のポインタを渡さなきゃいけなくなったり。
0715713NGNG
>>714
既存とはCの基本ランタイムwfopenみたなヤシですか?
まじー?
0716デフォルトの名無しさんNGNG
getc あたり、どうなると思う?
0717デフォルトの名無しさんNGNG
wfopenって初耳
0718デフォルトの名無しさんNGNG
wifstream, wofstream のコンストラクタも wstring でファイル名を
受けてくれればいいのに。
0719デフォルトの名無しさんNGNG
正直、UTF8/16/32, UCS-2のどれが良いのかわけわか。
0720デフォルトの名無しさんNGNG
結構調べたんですけど、stringstreamのバッファのクリアの仕方がわかりません。
まったくお恥ずかしい限りです。
0721デフォルトの名無しさんNGNG
std::stringstream x;
x.str( std::string() );
0722720NGNG
>>721
アリガ�d

もう1つ
どうしてx.str( std::string("test") );
はダメなんですか?
0723_NGNG
http://homepage.mac.com/hiroyuki43/hankaku06.html
0724デフォルトの名無しさんNGNG
>>722
ダメって、なにが?
0725722NGNG
>>724
あーーそうかstringstream::str("test")はポインタ進まないのね(汗)
ダメだと思った理由はご想像にお任せします。
0726デフォルトの名無しさんNGNG
関数の引数のデフォルト値を途中だけ設定することが出来ないですが、
何故そういう仕様になってるのかよく分かりませんでした。
int f(int, int = 3, int);
と宣言して、
f(3,,4); //OK
f(,,4); //デフォルト値なしの引数が省略されているのでエラー
となるような仕様では何故駄目なんでしょうか?


0727デフォルトの名無しさんNGNG
>>726
デフォルト引数を利用する場合
基本的には引数を省略する場合が多いんで、
途中に余計なコンマを書くよりは、
何も書かないでいいようにした方が効率的で分かりやすい。

デフォルト引数が複数ある場合には
f(3, , 4); というように指定したいと思う事もあるけど、
コンマの個数が増えてくるとソースが読みにくくなるし、
コンマの個数を間違えるとバグになるというのも困るので、
省略できないのも仕方が無いとも思う。

個人的には、名前付き引数があればええんでないかな、と思うのだが、
まぁ、無いものは仕方が無い、と。
0728デフォルトの名無しさんNGNG
デフォルト引数とオーバーロードを一緒に扱いたかったから、違う?
0729デフォルトの名無しさんNGNG
VC使っていますが、仮に

class A {
  A(int i) {}
};

class B {
  A  m_cA[8];
};

としたとき、B::m_cAを初期化するにはどうすればよいでしょうか。
0730デフォルトの名無しさんNGNG
>>729
ttp://www.parashift.com/c++-faq-lite/ctors.html#faq-10.5
0731デフォルトの名無しさんNGNG

DVからIEEEでキャプチャしてリアルタイム処理するプログラム組んでて
ttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html
を使ってやっているんですが、むちゃくちゃかくかくするんです。
単なる処理速度の問題なのかどうか、、
cはできるんですがwinプログラムは始めてで、フレームレートあがるにはどこいじればいいかわかんない
たのむ!たすけて
0732729NGNG
>730
なるほど、この構成自体がコンパイル通らないのですか。
情報感謝です。
0733デフォルトの名無しさんNGNG
>>729
配列の各々のオブジェクトに、違った初期化をする方法で
cinからもってくる方法がストラウストラップに載ってるね(p.300-301)。
まぁここまでするのもね。
0734デフォルトの名無しさんNGNG
>>731
多分処理速度。圧縮処理汁!!
0735デフォルトの名無しさんNGNG
C++の構造体とクラスの差について、
構造体は
・アクセス修飾子が無い。
・メソッド、コンストラクタ、デストラクタが定義できない。
以外に何かありますか?
0736デフォルトの名無しさんNGNG
> 構造体は
> ・アクセス修飾子が無い。
> ・メソッド、コンストラクタ、デストラクタが定義できない。
そんな差は無い。
0737デフォルトの名無しさんNGNG
C++は構造体でもメソッドもコンストラクタもデストラクタは定義できます。
アクセス修飾子もあります。
クラスとの違いはデフォルトの
アクセス修飾子がprivateかpublicかの違いのみです。
0738デフォルトの名無しさんNGNG
>>736
>>737
初心者な物で・・・失礼しました。
0739デフォルトの名無しさんNGNG
structはCとの互換性を考えてデフォルトをpublicにしているの?
0740デフォルトの名無しさんNGNG
関数オブジェクトを簡単に書けるように
0741デフォルトの名無しさんNGNG
オブジェクト指向的には構造体とクラスは別物。
C++ はほぼ同等の扱いにしてるけど。
0742デフォルトの名無しさんNGNG
>>741 マジですか?
0743デフォルトの名無しさんNGNG
何かの本で著者がstructとclassを使いわける俺ルールを書いてて
それに共感を覚えたんだけど、どういう決まりだったかすっかり
忘れてしまったな。
0744デフォルトの名無しさんNGNG
構造体はただの複数のデータの塊(のための型)。
変数を一度に沢山定義して、
それを一度に受け渡しするためのものに過ぎない。

一方クラスは具体的にどんなメンバ変数があるかは隠蔽しちゃってて、
使う側からは、どういう種類のデータを扱えて、
どういう機能を持っているかさえ分かっておけばいいようになっている。
つまり、データの抽象化を行ったものがクラスと言える。
メンバ関数を通してデータを扱う場合と言ってもいいかもしれない。
でも、ポリモーフィズムとかも重要な性質だろう。


C の FILE 構造体はクラスみたいな使い方をしてるけど、
これは C にはクラスがなかったからこうしてるだけ。
こういうのは、オブジェクト指向言語ではクラスにすべきだろう。
0745デフォルトの名無しさんNGNG
値として振舞うか、仕組みとして振舞うかの違いもあるよーな気がするのう。
0746デフォルトの名無しさんNGNG
「オブジェクト指向的には」とか言ってるけど、
Cの構造体、C++の構造体、C#の構造体みたいに、
狭い範囲でそれぞれ意味が定義されてるもんじゃないの?

オブジェクト指向という括りで通用する構造体の定義ってあるの?
0747デフォルトの名無しさんNGNG
単なるデータストアか、オブジェクトとしての振る舞い(もしくはロール)
をもつかで区別すりゃいいんでないかね。
0748デフォルトの名無しさんNGNG
#include<stdio.h>
#include<math.h>
#include<conio.h>
main(){ float a,x,b,x1;
printf("入力→");
scanf("%f",&x);

for(;;){
a=exp(x)-3*x;
b=exp(x)-3;
x1=x-a/b;

if(fabs(x1-x)<0.0000001)break;

x=x1;
}

どこがおかしい?
0749デフォルトの名無しさんNGNG
#include<conio.h>
0750デフォルトの名無しさんNGNG
スレ選び
0751デフォルトの名無しさんNGNG
}が足りない。
0752デフォルトの名無しさんNGNG
#include<stdio.h>#include<conio.h>#include<math.h>

main(){ float a1,a2,X=0,x=0,x1=4,x2,s=0,b,i,s1;

printf("分割数入力\n");scanf("%f",&b);

printf("α0入力→\n");scanf("%f",&a1);
printf("α1入力→\n");scanf("%f",&a2);
for(i=1; i<=b; i++){x=x+(1/b);
x2=(a1*a1)+(x*x)/(1+exp(x));
s1=((x1+x2)*(1/b))/2;x1=x2;s=s1+s;
}for(i=1; i<=b; i++){X=X+(1/b);X2=(a2*a2)+(X*X)/(1+exp(X));
S1=((X1+X2)*(1/b))/2;X1=X2;S=S1+S;
}

ごめん。こっちだった。
0753デフォルトの名無しさんNGNG
プリプロセッサ命令は一行にひとつ
0754デフォルトの名無しさんNGNG
大文字小文字を区別できないお前の頭














とでも言って欲しいのか?
0755デフォルトの名無しさんNGNG
なんか、強力なデムパが…










パナウェーブの仕業か!
0756デフォルトの名無しさんNGNG
質問です。
内容としては、ストラウストラップの10章の部分なんですが、
大域・名前空間オブジェクトの順序依存はさけるべきだという
話があって、で初回スイッチというテクニックが紹介されて
いました。オブジェクトが0かどうかをチェックしていますが、
これは、どういうことなんでしょうか?0だとどうで、0じゃないと
どうなんでしょうか?そもそも順序依存とは、オブジェクトが確保
されたかどうかですか?それとも初期設定されたかどうか?
0757デフォルトの名無しさんNGNG
>>756
読まずにレス。静的なポインタ変数をぬるぽと比較してると見た。
0758デフォルトの名無しさんNGNG
ストラウストラップの10章って何のこと?
あの人の書いた本で、ストラウストラップ本とか言われてるのがあるの?

# お、ググったら1件だけあった>ストラウストラップ本
0759デフォルトの名無しさんNGNG
>>758
"Stroustrup本"でググったらもうちょっとでてきたぞ
0760rNGNG
class Hanage {
  enum hanage_len_t{ LONG, SHORT };
  const hanage_len_t length;
  Hanage( hanage_len_t l ) : length( l ) {}
};
こんなクラスがあるんです。このクラスのインスタンスを作るには
Hanage hanage(Hanage::LONG);
だとか、
Hanage* pHanage = new Hanage( Hanage::SHORT );
なんて書きますよね。

ここで、この Hanage::LONG の Hanage:: の部分が、
Hanageのインスタンスを生成しまくる場面ではすごくめんどくさいのです。

たとえば、
class HanageGenerator {
  using class Hanage; // ←こんなのを書いて
  Hanage** Create( int n ) {
    Hanage** buf = new Hanage*[n];
    for( int i = 0; i < n; i++ )
      buf[i] = new Hanage( i % 2 ? LONG : SHORT ); // ←これ!Hanage::の省略!
    return buf;
  }
};
こんな風に書けたら素敵だなぁ、って思うのです。
で、これ-----Hanage::の省略----の実現方法を知ってる人がいたら
教えてくださいませ。
0761デフォルトの名無しさんNGNG
面倒っても、new Hanage(HANAGE_SHORT)とかやるのと大差ないと思うにょ。
0762デフォルトの名無しさんNGNG
>>760
namespace hanage { } で囲み、
enum hanage_len_t はクラスの外でこのnamespace内に移動すれば

using namespace hanageでできないこともないが、美しくはないか
0763756NGNG
あ、ストラウストラップとはプログラミング言語C++(第3版)
のことです。すんません、わかりづらかったようで。

で、その10章のラストにアドバイスとして次のようなことが書かれて
います。
・大域、名前空間内オブジェクトを構築するときには、順番への依存を避けよ。
・順番への依存を抑えるためには初回スイッチを使え。

この順番への依存とは何の順番なんでしょうか。まぁたとえば静的メンバ
をもつクラスが大域スコープで定義された時のように、ある大域オブジェクト
が他の大域オブジェクトを参照する時のことなんでしょうが、これは要するに
参照しようとした時に、まだ使えない場合があるということなんですかね。
それとも初期設定がされてるかどうかって話なんでしょうか。

10章で紹介されている初回スイッチ(よく使われる戦略だそうで)ですが、
bool型の静的メンバをもつクラスのメンバ関数で、その静的メンバがfalseか
どうかをチェックしています。falseならtrueをセットして初期設定してる
ようです。この手法はコンストラクタがない静的オブジェクトが0で初期設定
されることを利用しているということだそうですが、falseの時はどいう時で
trueの時はどいう時なんでしょうか?(ってわかりづらくてすんません)
0764デフォルトの名無しさんNGNG
> 順番への依存とは何の順番なんでしょうか

大域オブジェクトの初期化の順番は処理系依存

> 初回スイッチ

シングルトンの実装方法を見れば判ると思う
0765デフォルトの名無しさんNGNG
>>763
なんでそんなことも分からないのかが分からない。
初期化してないときがfalseで初期化済みがtrueに決まってるだろ。
bool型の静的メンバの名前が「initialized」だし。

>参照しようとした時に、まだ使えない場合があるということなんですかね。
>それとも初期設定がされてるかどうかって話なんでしょうか。

まだ使えない=初期設定がされてない なので言ってる事がトンチンカン。
0766756NGNG
レスどうもです。
順番とは初期化のことなんですね。じゃ、とりあえず
初期化されてなくても、参照はできるということは
保証されてるってことですね。うーむ。ということは
大域オブジェクトに何か値をセットするような関り方を
している場合、値をセットした後、0にもどされるって
場合があるってこと?こんがらがってきた・・・。

シングルトンですか・・・なんでしょうかそれは。
0767デフォルトの名無しさんNGNG
> 参照はできるということは保証されてるってことですね。

逆。
初期化されていないオブジェクトを参照できるから、危険。

シングルトンはデザインパターンの本を見れば書いてあるよ。
0768756NGNG
あ、もちろん安全という認識はないんですが、
言ってることは間違ってないですよね?


そうですか。ちょっと本を探してみます。
ありがとうございました。
0769デフォルトの名無しさんNGNG
初期化って0クリアのことを指してたの?
てっきりコンストラクタ呼び出しのことかと思ってた・・・

それから、初期化時のコンストラクタ呼び出しの順序だけじゃなくて、
mainを抜けた後のデストラクタ呼び出しについても、同様の問題が
起こりうることは覚えておいたほうがいいと思う。
0770デフォルトの名無しさんNGNG
> デストラクタ呼び出しについても、同様の問題が
おこらねーだろ。
0771デフォルトの名無しさんNGNG
>>770
デストラクタ呼び出し後のオブジェクトを参照する場合。
0772デフォルトの名無しさんNGNG
Stroustrup本見てみたけど訳分からんね、これじゃ。
理解する気失せるわ。やっぱいろいろと不親切な本や。

Effective C++の47項を見るか、あるいはSingletonパターンでいいと思う。
0773770NGNG
>>771
あーそういうことか。
0774デフォルトの名無しさんNGNG
>>760
とりあえず、 Hanage::hanage_len_t は Hanage::len_t のようにすべき。
で、
inline Hanage* create( Hanage::len_t len ) { return new Hanage( len ); }
こんなやつを定義すると、ナントカ参照という仕様により
Hanage* p = create( Hanage::LONG );
と書ける。
あからさまに冗長な new Hanage( Hanage::LONG ) よりは読んでて気持ちいい。

でも、実用はお勧めできない。
0775デフォルトの名無しさんNGNG
>>766
0クリアはされないかと。
コンストラクタ以前にスタートアップコードのあたりで0クリア済みじゃない?
初期化ってのはコンストラクタが呼ばれること。

0クリア云々のくだりはbool型のinitializedのことで、他のクラスの事じゃない。
false==0ってことは理解してる?
initializedが最初の実行時は必ずfalseだから、それで初期化済みか判定して
いるってこと。

で、例の本にもデストラクタの問題も書いてあって、解決法としてatexit()と
参照カウンタをチョロっと紹介してる。

>>772
あの本はテクニックを解説する本じゃなくて、C++の言語仕様を説明する本だから
Singletonなんてあの程度の解説で十分かと。
逆に言語仕様と関係ない部分ばかり説明されても困る。
ただでさえ分厚い本なんだし。

756が何でこの本を読んでいるのかはちょっと疑問。
これは入門書じゃないぞ。
0776デフォルトの名無しさんNGNG
age
0777デフォルトの名無しさん NGNG
オブジェクトをファイルに保存、復元したいんだけどこんなんでいいの?
VC++のデバッガでは出来てるっぽくみえたんだけど
#include <stdio.h>
#include <string.h>

class CLS_A{
char m_a[16];
public:
CLS_A(){strcpy( m_a, "Test");};
~CLS_A(){};
};

void main(){
CLS_A *A = new CLS_A;
FILE *fp;
fp = fopen("TEST.bin", "w");
fprintf( fp, (const char *)A);
fclose(fp);
delete A;

CLS_A *C = new CLS_A;
fp = fopen("TEST.bin", "r");
fscanf( fp, (const char *)A);
fclose(fp);
delete C;
}
0778デフォルトの名無しさんNGNG
VC++.netでC言語コンパイルできるんでしょうか?
C言語の勉強用に買ったんですが、どうやってもコンパイルできません。
VC++を.netで初めて使ったのでかなり試行錯誤してる段階です。
それと.net用の解説書を買いにいったのですが近所のパソコンショップ
数件まわったのですが6.0用のしかありませんでした。
6.0の解説書でも参考になるんでしょうか?
初歩的な質問ですいません。
0779デフォルトの名無しさんNGNG
>>777
fscanf( fp, (const char *)A);

( ´_ゝ`)フーン…
0780rNGNG
>>778
VC++は知らないけど、
C++なら、Cの殆どのコードはコンパイルできるはず。

というか、「どうやってもコンパイルできません」って書いているけど、
具体的にどうやったんだ?それをまず書け。
0781デフォルトの名無しさんNGNG
>>780 rさん
#include <stdio.h>

void main()
{
  printf( "〜〜〜〜" );

}
コンソールモード、デバックで開始
するとこれらのプロジェクトは古い形式で構成されてます
と警告気味のコメントがでます。
「はい」をえらぶと6個のエラーがでます
エラーC2018 文字 0x40は認識できませんが3つ
エラーC2018 文字 0x81は認識できませんが3つ
です。
0782デフォルトの名無しさんNGNG
>>781
http://www.google.com/search?hl=ja&lr=lang_ja&q=0x40+0x81
0783デフォルトの名無しさんNGNG
>>781
ん?それコンパイルできるはずだけど・・・。コンソールモードって
プロジェクト立ち上げるときに選ぶやつを言ってるのかな?

まずメニューより[ファイル]→[新規作成]→[プロジェクト]と
進む。[テンプレート]の欄でWin32プロジェクトを選び、
適当なプロジェクト名を入力してOKを押す(保存先変えるなら変える)。
んで[概要]と[アプリケーションの設定]というのがでてくるんで、
[アプリケーションの設定]タブをクリックしてコンソールアプリケーションを
選択して、空のプロジェクトにチェックを付けて完了。

この手順でやってるの?
0784783NGNG
あ、もしかして
printf( "〜〜〜〜" );
って〜〜〜〜の部分をそのまま使ってるんかい(w。
最初はHellow World!って決まってるのに・・・・。
全角じゃなくて半角英数字でも入れてみたら。
■ このスレッドは過去ログ倉庫に格納されています