何をバカな質問してるんだと思われるかも知れませんが、最近C++を学び始めたばかりなのでわからないのです。(本・その他いろいろなサイトを見て回りましたがいまだにわかりません。)
1.#include<iostream>と#include<iostream.h>の違い?
私が購入した本では前者の方で記述されていますが、プログラミング関係のサイトでは必ず後者の方の記述がされてますが、果たして違いはあるのでしょうか?
2.例えば
void main(){
char c[11];
cout <<"貴方の名前は?"<<endl;
cin >> c;
cout << c <<"さんですね。"<<endl;
}
の場合、char c は10文字(日本語5文字)までが入るということですよね?
でも実行して、10文字以上記入しても問題無く10文字以上表示されるのですがなぜなのでしょう?(borland5.5コンパイラで)
ちなみにVC++でトライしてみたら、「重要なエラーが発生しました。マイクロソフトに連絡を~」といった
エラーメッセージが表示されます。
こんな初めてつまづくと先が思いやられますが、完全に把握しないと先に進まないといった性格ですので、この2点お分かりの方、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
1.
C++の(比較的)新しい仕様であるネームスペース(=名前空間)に関連します。
詳しいことをここでダラダラ書くよりも「C++ 名前空間」で検索した方が有益な情報が得られるでしょう。
結論だけ言うと「比較的新しいコンパイラではiostream.hではなくiostreamが推奨される」。
2.
メモリ管理の方式の違いが実行結果に出ているのでしょう。
11バイトの領域に対して11バイト以上のデータを格納した場合の挙動は定義外です。
よって、実行結果は処理系(環境とコンパイラ)に依存します。
やってはいけないことをやった結果ですから、素直にエラーを出すVC++の方が好ましい結果だと言えます。
しかし、処理系依存ですからBC++の結果が“あきらかな間違い”とは言えません。
No.1
- 回答日時:
1.まず#includeとはそこに指定したファイルを埋め込む命令です。
つまり「"iostream.h"というファイルをそこに埋め込みなさい。」
と言う意味です。
なので"iostream"というファイルがあれば間違いではありませんが、
通常ヘッダーファイルを読み込むのであれば、
拡張子".h"が付いた"iostream.h"ですね。
2.char c[11];とした場合、
半角文字11文字が格納されます。
⇒文字列の場合NULLを入れるので10文字が望ましいですが…。
それを超えた場合はコンパイラによってエラーとされるか、
強制的にメモリのどこかに書き込まれます。
いわゆるアクセスバイオレーションを引き起こす原因となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
昔のgraph.hというファイル
-
C++Builder → Visual C++ 移植...
-
<conio.h>?
-
C++でデスクトップGUIアプリ開...
-
C言語の規格
-
『Bin』ディレクトリは何の略語?
-
未使用引数の注意文出力を回避...
-
Visual Studio でmakefileを使...
-
POWERCOBOLのSQL...
-
VC++の/Zm オプションについて
-
COBOLの論理演算子について質問...
-
C言語での式の評価順序について
-
PICでのI2C通信でのマスタ、ス...
-
C言語はC言語でできている?
-
cc と gcc の違い
-
C言語でのコンパイラの作成方法
-
void型のポインタで構造体の参照
-
C言語でチェスを作ってみたいと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
printfなど、標準関数のソース...
-
組み込みソフト。ROM領域にデータ
-
リリースモードとデバッグモー...
-
変数の内容がコロコロ変わる、...
-
cc と gcc の違い
-
COBOLの論理演算子について質問...
-
Visual Studio でmakefileを使...
-
PICでのI2C通信でのマスタ、ス...
-
COBOLのALPHABET...
-
<conio.h>?
-
VB6のコンパイラ
-
COBOL計算式の中間ワーク桁数に...
-
パーサとコンパイラの違いって?
-
関数形式マクロ dtaは戻り値が...
-
プログラミングって右脳よりの...
-
C++Builder → Visual C++ 移植...
-
24bit サイズの変数
おすすめ情報