string型が定義できない・・・・ – プログラミング – Home

string型が定義できない・・・・
 
通知
すべてクリア

string型が定義できない・・・・


Akki
 Akki
(@Akki)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

はじめまして、Akkiといいます。
本日よりC++の勉強を始めたのですがいきなりつまづいてしまいました。

内容的には以下のようなコードでごく簡単な事をしているのですがコンパイルできないのです。
#include <iostream.h>
#include <string.h>

int main(void){
int a, b;
double f;
char c;
string s;

a = 20;
b = 3;
f = 3.1415926;
c = 'a';
s = We can do it!;

cout << 整数 a: << a << endl;
cout << 整数 b: << b << endl;
cout << 浮動小数点 f: << f << endl;
cout << 文字 c: << c << endl;
cout << 文字列 s: << s << endl;
return 0;
}

ソースは問題ないと思うのですが、コンパイルエラーで
『error C2065: 'string' : 定義されていない識別子です。』
といわれてしまいます。
原因のわかる方どうか助けて下さい・・・・(T_T)
環境はVC++6.0 SP5を使用しています。


引用解決済
トピックタグ
Akki
 Akki
(@Akki)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

すいません、書き忘れました。
WinNT4.0
VC++6.0 SP5
IE5.5


返信引用
toru
 toru
(@toru)
ゲスト
結合: 24年前
投稿: 48
 

えっと

#include <string>

int main()
{
std::string str;
}

あるいは

#include <string>
using namespace std;

int main()
{
string str;
}

のようにやってみて下さい。


返信引用
Akki
 Akki
(@Akki)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

>toruさん
 ありがとうございます。
 stringの定義はできました♪
 
 ですが、#includeする時にの書き方は<string.h>ではなく<string>だけで良いんですか?
 あと、『using namespace std;』これは一体なんのおまじないなのか・・・・(--;
 もう一つ、string型はcoutで出力はできないのでしょうか??

 なんか質問ばかりですいません・・・・。


返信引用
toru
 toru
(@toru)
ゲスト
結合: 24年前
投稿: 48
 

VC++に標準で付いてるSTLはたいてい.h無しで定義されています。

using namespace std;

ってのは簡単に説明すると

namespace A
{
class C
{
...
};
};

namespace B
{
class C
{
...
};
}

このコード上にclass Cが2つありますがこれは競合しません。
それぞれ

A::C
B::C

という風にアクセスします。

それで

using namespace A;

とすると

C

と書いただけで暗黙に

A::C

の方になります。

それと、coutでは出力でします。

えっと本気で説明すると長くなるんであとはMSDNを見て下さい。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

>VC++に標準で付いてるSTLはたいてい.h無しで定義されています。

というか,標準C++のヘッダファイルは全て.hがついていません。
std::iostreamは<iostream>ですし,std::printfは<cstdio>です。
尤も,VC++は準拠が甘いため,<cstdio>にstd::printfでなく::printfがありますが。


返信引用
toru
 toru
(@toru)
ゲスト
結合: 24年前
投稿: 48
 

yvals.hってのがありますが。VC++の独自拡張だと思いますが
無いとまずいわけですし。STLの一部と言っても良いような気がします。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

yvals.hは内部で使っているだけのヘッダファイルですよね。
実装上の問題であって,本来無くても良いファイルです。
なので,STLの一部とは言えないでしょう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました