• ベストアンサー

質問です。。。

いつもすみません。また質問させていただきます。 まずしたのプログラムを見てください・・・ #include <iostream> #include <string> using namespace std; int main() { string name; int tosi; cout << "こんにちは。私はコンピュータです。" <<endl; cout << "あなたの年齢を教えてください" <<endl; cin >> tosi; cout<<name<<"歳なんですか・・・老けてますね(笑)"<<endl; cout << "どこの学校ですか" <<endl; cin >> name; cout<<name<<"That's right!"<<endl; } このプログラムの8行目にあるint tosi;がありますよね。 この単語がなくても string name があったら12行目のプログラムができたのですが、どういうことなのでしょうか? 表現が一部変ですがよろしくお願いします。

  • dfksh
  • お礼率64% (756/1164)

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

  • ベストアンサー
回答No.3

> intは数字に関係がるんですよね。 '数値'と'数字'は別物です。 intに入るのは数値であり数字ではありません。 > stringは数字も含むのでしょうか? '数値'はstringに納まりませんが、 '数字'は文字なのでOK。 > ちなみに12行目のtosiはnameと考えてください。 cin >> name; cout<<name<<"歳なんですか・・・老けてますね(笑)"<<endl; ってことですね。ならば問題ありません。 ここで 35 と入力してもあくまで文字列 "35" とみなされます。 参拾五 と入力するのと何の違いもありません。 # ところで "質問です" なんてな阿呆なタイトルは控えてください。

dfksh
質問者

お礼

回答ありがとうございます! やっとすっきりしました。 確かに 質問です なんて題名は変ですよね。 質問するのに題名が質問ですなんて回答する人が困りますよね・・・ 気をつけます!

その他の回答 (3)

回答No.4

ANo.2 > 余談ですが > int main() > となっているので、main関数の最後に return 0; を入れてあげましょう。 C++ではint main() のreturnは省略してもよい(暗黙に0が返される) と言語仕様に定められています。

  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

コンパイルが通ったこと、実行できたことと、プログラムが意図したとおりの動作をすることとは別です。 プログラムを実行して、年齢を聞かれて適当な値を入れたとき、狙い通りの結果が表示されますか? ## cin >> tosi; ## cout<<name<<"歳なんですか・・・老けてますね(笑)"<<endl; ここは、きっと cin >> tosi; cout << tosi <<"歳なんですか・・・老けてますね(笑)"<<endl; としたかったのだと思いますがいかがでしょうか。 余談ですが int main() となっているので、main関数の最後に return 0; を入れてあげましょう。

dfksh
質問者

お礼

回答ありがとうございます すみません・・ちょっと理解できません return0;はどこに書けばいいのでしょうか? 関数がいまだに理解できません

回答No.1

cout<<name<<"歳なんですか・・・老けてますね(笑)"<<endl;     ↑これ、何かのマチガイ。

dfksh
質問者

お礼

回答ありがとうございます え~っと・・・僕の間違いでした・・・ intは数字に関係がるんですよね。 stringは数字も含むのでしょうか? ちなみに12行目のtosiはnameと考えてください。 ちょっと変ですがよろしくお願いします

関連するQ&A

  • 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
  • C++

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

  • Visual C++ 2008 Express Editionで作ったプログラムがコンパイルできない

    http://www.asahi-net.or.jp/~yf8k-kbys/newcpp3.html このサイトに掲載されていたプログラムをまねて以下のプログラムをかいてみたのですがコンパイルが通りません。 原因などはどこにあるのか教えていただけないでしょうか。 // test003.cpp : メイン プロジェクト ファイルです。 #include "stdafx.h" //using namespace System; using namespace std; int main(array<System::String ^> ^args) { string name; //Console::WriteLine(L"Hello World"); //return 0; cout << "こんにちは。私はコンピュータです。" << endl; cout << "あなたの名前を入力してください。" << endl; cin >> name; cout << name <<"さん。よろしく。" << endl; }

  • getlineについて

    現在getlineを用いてプログラムを作成しようとしているのですが、例えば #include <iostream> using std::cin; using std::cout; using std::endl; int main(){ char buffer[81]; while(!cin.eof()){ cin.getline(buffer,sizeof(buffer)); cout << buffer << endl; while((!cin.eof())&&cin.fail()){ cin.clear(); cin.ignore(80,'\n'); } } return 0; } というプログラムを作った場合、標準入力から各行を80文字だけ読み込み出力をするわけなんですが、 この80文字という文字制限をなくしたい場合どういった工夫をすればいいのでしょうか?

  • この文章正確ですか?

    #include <string> #include <iostream> using namespace std; int main(){ string s1; s1 = "こんにちわ"; count << s1 << endl; } これをコンパイルしようとしてもできません。 どこが間違っているのでしょうか?

  • プログラムの動作の仕方

    この下のプログラムは、WRITE <ファイル名>をコマンド行で入力すると、動作するプログラムなのですが、この通りにWRITE <test>としてもできません。 やり方を教えてください. #include <iostream> #include <fstream> using namespace std; int main(int argc,char *argv[]) { if(argc!=2){ cout << "使い方:WRITE<ファイル名>" << endl; return 1; } ofstream out(argv[1]); //出力ファイル if(!out){ cout << "出力ファイルが開けません" << endl; return 1; } char str[80]; cout << "文字列をディスクに書き込み、$で停止します" << endl; do{ cout << ": "; cin >> str; out << str << endl; }while(*str!='$'); out.close(); return 0; } お願いします。

  • C++の問題の問題なんですが

    a = 3+aを代入演算子を用いて表現せよ。ってどうすればいいんですか? a+=3;ですか? 以下のように出力されるプログラムを作成せよ 年齢を入力してください 16 生まれた年を入力してください 1986 好きな数字を入力してください 7 あなたは1986年生まれの16才で、7が好きですね #include <iostream> using namespace std; int main(){ cout << "年齢を入力してください\n" << 16 << endl; cout << "生まれた年を入力してください\n" << 1986 << endl; cout << "好きな数字を入力してください\n" << 7 << endl; cout << "あなたは1986年生まれの16才で、7が好きですね" << endl; return0; } 上の問題にcinを一度だけ使って表現せよ 1番最初のプログラムはこうでいいのかなと思うんですが、次のcinを一度だけ使って表現せよって言うのが分かりません。実行結果も含めて教えてもらえませんか?

  • このプログラムを...

    現在テスト用のプログラムを書いているのですが、なかなか動いてくれません。 ソース: #include <iostream> #include <iomanip> #include <string> using namespace std; struct MovieData { string title; string director; int year; int time; }; const int ARRAY_SIZE = 2; void showItem(MovieData[ARRAY_SIZE]); int main() { MovieData part[ARRAY_SIZE]; for (int cnt = 0; cnt < ARRAY_SIZE; cnt++) { cout << "Enter the movie's name: "; cin >> part[cnt].title; cout << "Enter the director's name: "; cin >> part[cnt].director; cout << "Enter the year of release: "; cin >> part[cnt].year; cout << "Enter the movie's running time: "; cin >> part[cnt].time; } showItem(part); return 0; } void showItem(MovieData part) { cout << fixed << showpoint << setprecision(2); for (int cnt2 = 0; cnt2 < ARRAY_SIZE; cnt2++) { cout << "Name of movie: " << part[cnt2].title << endl; cout << "Director: " << part[cnt2].director << endl; cout << "Year of released: " << part[cnt2].year << endl; cout << "Running time: " << part[cnt2].time << endl; } } どこが間違っているのでしょうか?宜しくお願いします。

  • C++文字列の挿入、結合のコードについて

    実行結果のような出力をするためには、 以下のコードの(ウ)(エ)(オ)の部分には何を入れたらよいのでしょうか? よろしくお願いします。 #include <iostream> #include <string> using namespace std; int main( ) { string str1="ABCDEF"; string str2="0123"; string str3; string q; do { (ウ) ; cout << str3 << endl; (エ) ; cout << str1 << endl; cout << "quit?"; cin >> q; } while ( (オ) ); cout << "終了" << endl; return 0; } <実行結果(出力結果)> ABCDEF0123 ABC123DEF quit?q ABC123DEF0123 ABC123123DEF quit?qu ABC123123DEF0123 ABC123123123DEF quit?quit 終了

  • 結果を報告しない?(void)

    #include<iostream> #include<string> using namespace std; void Aisatu(string n){ cout<<n<<"さん、こんばんわ"<<endl; } int main() { Aisatu("鈴木"); } 上のプログラムで、C++の学習書に「void」とは「この関数は結果をどこにも報告しない、ということ」と書いてありますが、私の理解では下のAisatu("鈴木");という外部の文字列を受け取りcout<<nに「報告」しているように感じられます。どうか解釈がうまくいきますようにご教授いただけないでしょうか。よろしくお願いします。

専門家に質問してみよう