• ベストアンサー

プログラミング言語Cとプログラミング言語C++

プログラミング言語Cとプログラミング言語C++の違いって何ですか? あと、プログラミング言語C++についていくつか質問があります。 #include <iostream> using namespace std; void main(){ cout << "Hello world!" << endl; } このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? using namespace stdって何ですか? あと、 cout <<"Hello world!"って何ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> プログラミング言語Cとプログラミング言語C++の違いって何ですか? C++は、Cのほぼ全ての仕様を含み、クラス、テンプレート、例外処理など大幅に機能拡張した言語です。 細部の違いが知りたければ、下記を参照してください。 http://www.kijineko.co.jp/tech/cpp2c > このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? 違います。 C++にもstdio.hがありますし、cstdioというヘッダもあります。 iostreamヘッダは、cin, cout, cerr, clogとそれらのワイド文字版を宣言するためのものです。 ですので、iostreamヘッダで宣言・定義される関数やクラスを使うだけでは一般的なファイルの操作はできませんし、sprintfやsscanfに相当するものもありません。 また、removeやrenameなど、ストリームとは関係のない操作も含まれていません。 > using namespace stdって何ですか? 「using指令」によって、名前空間stdの中にある名前を大域的名前空間でも使えるようにするものです。 せっかく名前空間を分けているのに、それを無効にしてしまうような機能ですから、安易にusing指令を使うのはお勧めしません。 > あと、 cout <<"Hello world!"って何ですか? 標準出力に対して、文字列"Hello, world!"を出力します。 ちなみに、endlは、改行を出力したあと、バッファにたまった内容を実際に吐き出します(フラッシュします)。単なる改行の出力ではないので要注意です。 C++の仕様は結構大きい方なので、遭遇した記述をひとつひとつ質問していたのではキリがありません。 まずは入門書を一冊読み、わからない用語等については、処理系のリファレンスを読むか、ネットで検索するなどしてください。

その他の回答 (3)

  • alwen25
  • ベストアンサー率21% (272/1253)
回答No.3

>using namespace stdって何ですか? 標準入出力を使うという意味です。 これを書かないとソース上に stdと何回も書かなければならなくなります。 >cout <<"Hello world!"って何ですか? Hello Worldと表示するという意味です。 #include <cstdio> using namespace std; void main(){ printf "Hello world!" \n } というのでも同じ意味です。

  • bajutsu
  • ベストアンサー率20% (139/693)
回答No.2

どんな入門書でも書いてありそうなことばかり聞かれてもね・・・ C言語 http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E C++ http://ja.wikipedia.org/wiki/C%2B%2B >iostreamってプログラミング言語Cで言うstdio.hのことですか? >using namespace stdって何ですか? >cout <<"Hello world!"って何ですか? ggrks!

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

C++はクラス定義が出来、関数オーバーロードやクラス継承、関数オーバーライドが可能です。基本的にオブジェクト指向を目指したプログラミング言語です。 以前は基本的にCの上位互換でしたが、ISOの規格化の変遷などで今は完全な互換性はなくなりました。 > iostreamってプログラミング言語Cで言うstdio.hのことですか? ある意味似たようなものです。 ただし、iostreamのほうはクラスライブラリがついているのでより高機能です。 cout オブジェクトに << 演算子で各種のデータを出力することができます。 coutは「Console Outut」の略だったかな。endlは「End Line」で改行です。 例えば #include <iostream> using namespace std; int main(){ int i = 100; cout << "I am foo "; cout << "Hello world! i=" << i << endl; return 0; } のような記述も可能です。この場合は「I am foo」では改行しません。 ただし、個人的にはiostreamは数値の出力書式の指定ができないし、オブジェクト指向としてどうも違和感を感じますね。 JavaやC#は結局staticメソッドに戻ってしまいました。

関連するQ&A

  • Borland C++ Compiler 5.5

    ここで教えてもらってBorland C++ Compiler5.5とCPadをつかってるんですが、 #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; rreturn 0; } と入れると、 「hello.exeがありません」(helloは保存データの名前) と出るんです。 古いバージョン専用のスクリプトなのですか? それとも設定ミスですか? 教えてください。

  • TextWranglerについて

    私はプログラミングを学ぼうとしていて C++をMacでTexrWranglerをつかって勉強しようとしたのですが 設定がよくわからず、 #include <iostream> using namespace std; int main() { cout << "hello" << endl; } というようにうち「RUN」をクリックするとエラー(error code 13304) がでてうまく実行ができません。 どのように設定をすればよいのでしょうか。

  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • C++のiostreamのインクルードが不可能です

    C++のiostreamのインクルードが不可能です。 とても初歩的な話でお恥ずかしいのですが、 Visual Studio 2012 Express for Windows DesktopにてC++の入門をしようとしている者です。 入門書の通り、iostreamをインクルードしてnamespaceをstdにして int main() { cout << "Hello, World!" << endl; return 0; } このようなHello,World!コードを作ったのですが、エラーが発生し、 ・ソースファイルを開けません "iostream" ・識別子 "cout", "endl" が定義されていません と表示され、デバッグエラーとなります。 プロジェクトの作り手順としては C++の空のプロジェクトからcppファイルをソースファイルに追加する手順です。 どなたか解決方法をご教授ください。

  • C++

    C++で書いた下記のプログラムが、文字の入力が1023個までなら実行されますが、1024個を超えると実行されません。なぜだか分かる方、教えてください。 #include <iostream> #include <string> using namespace std; int main(void) { string Str; cin >> Str; cout << "here"; }

  • C++にオリジナル言語の解釈をさせたい

    質問タイトルが適切かどうかが不安ではあるのですが……。 例えば、 V MAIN{ IT = 50; PR("hello,world"); FO(10){  IT --;  PR(IT); } } のような入力を、 #include <iostream> using namespace std; int main(){  int it = 50;  cout << "hello,world\n";  for(int i = 0; i < 10; i++){   it--;   cout << it <<"\n";  }  return 0; } として実行するプログラムを作りたいのです。 (簡単なスクリプト言語を作りたいと言った方が適しているでしょうか?) このようなプログラムを作る際に参考になりそうなWebページ、または書籍などに心当たりある方、是非紹介をお願いします。

  • c++プログラム。どこがだめか教えて欲しいです。

    以下のプログラムにおいて、後者のコンパイルが通りません。 違いは、クラス:Kurasu のコンストラクタに引数があるかないかで、 全部で3行違います。 後者のどこが問題か指摘して欲しいです。(さっぱりわからない…。) 試した環境は、 Visual C++ 2010 Express + インストーラー配布のboostと、 Eclipse 3.5.2 Galileo Windows 32bit ベース / Pleiades All in One 3.5.2.20100226 のUltimate+←を使ってソースをビルドしたboostです。 boostのバージョンは、1.46.1です。 -------------------------------------------------- #include <iostream> #include <boost/thread.hpp> using namespace std; using namespace boost; class Kurasu { public: Kurasu(int ababa){}; void run(){ for( int i = 0; i < 10; i++ ){ cout <<"foo "; } }; }; int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! Kurasu hoge(1); Kurasu piyo(2); thread thr_hoge( &Kurasu::run, &hoge ); thread thr_piyo( &Kurasu::run, &piyo ); thr_hoge.join(); thr_piyo.join(); return 0; } -------------------------------------------------- #include <iostream> #include <boost/thread.hpp> using namespace std; using namespace boost; class Kurasu { public: Kurasu(){}; void run(){ for( int i = 0; i < 10; i++ ){ cout <<"foo "; } }; }; int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! Kurasu hoge(); Kurasu piyo(); thread thr_hoge( &Kurasu::run, &hoge ); thread thr_piyo( &Kurasu::run, &piyo ); thr_hoge.join(); thr_piyo.join(); return 0; } --------------------------------------------------

  • javaプログラミング

    以下のプログラムがコンバイルできません なぜでしょうか? #include<iostream> #include<cmath> using namespace std; int main() { double a, b; cout << "実数 a の値を入力してください " << endl; cin >> a; cout << "実数 b の値を入力してください " << endl; cin >> b; cout << a << " の " << b << " 乗は " << pow(a, b) << "です" << endl; return 0; }

    • ベストアンサー
    • Java
  • 2つのcppファイルから

    1つのexeファイルを作る必要性が出てきました。 (現在質問中の質問に関連しています。) 例えば file.cpp: #include<iostream> using namespace std; void Output(int x) { cout<<x<<endl; } void main(void) { for(int i=0;i<9;Output(i++)); } をコンパイルリンクすれば済むことを file1.cpp: #include<iostream> using namespace std; void Output(int x) { cout<<x<<endl; } file2.cpp: void main(void) { for(int i=0;i<9;Output(i++)); } という風に分かれているファイルをコンパイルリンクしなければならないのです。 cpp -e file.exe -c file1.cpp -c file2.cpp ではエラーになります。 どうすれば良いのでしょうか?

  • stringについて

    C++初心者です。 このプログラムで続行するとエラーがでます。どうしたら無事実行することが出来るのでしょうか? #include<stdio.h> #include <iostream> using namespace std; int main(void) { string str("エラー"); cout << str<< endl; } エラー 1>c:\documents and settings\****\デスクトップ\zisyu12\zisyu12\main.cpp(58) : error C2679: 二項演算子 '<<' : 型 'std::string' の右オペランドを扱う演算子が見つかりません (または変換できません)。 . . . 以下省略

専門家に質問してみよう