• 締切済み

C++でどうすればcoutで表示できるのですか?

C++についての質問です coutで表示するときに kannsuu関数の返り値を main関数とmain関数の cout << ++kannsuu(i) << endl; の部分を変更せずに kannsuu関数のみを変更して インクリメントして「2」と表示したいのですが どのようにすればいいですか? #include <iostream> using namespace std; int kannsuu(int i) {return i;} int main() { int i = 1; cout << ++kannsuu(i) << endl; return 0; }

みんなの回答

回答No.4

int& kansuu(int& i) { return i; }

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

やっちゃいけないコードですが。

回答No.2

++kansuu(i)で仮引数の変数であるiをインクリメントしてもよいのであれば、 int&kansuu(int&i) {return i;}

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

++ でインクリメントする、ということは、対象が代入できないと意味が無いのはおわかりですね? int型の戻り値には代入できません。 で、結果としてどうなって欲しいのでしょうか? cout << ++kannsuu(i) << endl; のあとで、iがイクリメントされた i=2の状態にしたいのでしょうか? 単に 戻り値+1を出力したいだけなのでしょうか? 前者なら、参照で渡して、参照を受けとる、という方法はあります。

関連するQ&A

  • C++の最初のあたり

    例に自分の名前、生年月日、年齢、住所を画面に表示するプログラムを作ってみてくれませんか? そのプログラムのそれぞれの行にコメントを入れよと出てるんです まだやったばかりで文字の出力法くらいしかやってないですが… これどこが違うんですか #include<iostream> using namespace std; int main() {//main関数を定義する .... cout << "" ×○太郎 << endl ;//自分の名前 .... cout << "April 8, 19○○" << endl ;//生年月日 .... cout << "○○ years old" << endl ;//年齢 .... cout << "taitouku" << endl ;//住所を画面に表示 return 0; }//main関数の終わり そんな難しい事してないから、最初と最後の文はもうこれで行きます

  • char型変数のアドレスを coutで表示するには

    #include <iostream> using namespace std; int main() { bool b; int i; short s; long l; float f; double d; char c; //上で宣言した変数のアドレスを表示 cout << "bool &b " << &b << endl; cout << "int &i " << &i << endl; cout << "short &s " << &s << endl; cout << "long &l " << &l << endl; cout << "float &f " << &f << endl; cout << "double &d " << &d << endl; cout << "char &c " << &c << endl; //「char &c 」とのみ表示される cout << '\n'; //char型のみ printf で再表示 printf("char &c %p\n", &c); //「char &c ********」と表示される return 0; } 上のプログラムを実行すると cout << "char &c " << &c << endl; のところだけ、アドレスが表示されません。 printfを使えば、char型の変数のアドレスも表示されるのですが…。 coutを使ってchar型のアドレスを表示させるにはどうすればいいのでしょうか。 よろしくお願いします。

  • c++ 初心者です。cout 日本語表示です。

    win10 home 64bit に vs2017community をインストールしました。 vc++ 始めたばかりです。 #include <iostream> using namespace std; int main() { cout << "日本語"; return 0; } 表示されませんでした。 setlocale(LC_CTYPE, "jpn"); cout << "日本語"; で、表示されました。それで疑問なのですが、この setlocale(LC_CTYPE, "jpn"); を、書かなくても済む方法がありますか? 宜しくお願いします。

  • C++プログラム問題(初心者です)

    C++の勉強初めて1ヶ月ぐらいです。 以下にある問題がわかりません。 解説付きでお願いします。 [問題] 関数 funcのみを修正することで、標準出力に 2 が表示する。 [プログラム] #include <iostream> using namespace std; int func(int i) {return i;} int main() { int i = 1; cout << ++func(i) << "\n"; return 0; }

  • c++での入出力がうまくいきません;

    初心者ですが独習c++でプログラミングについて勉強している者です。 なんとか環境設定もできたと思いきや、うまくコンパイルすることができなくて困っています。具体的には、 #include <iostream> using namespace std; int main() { int i, j; double d; i = 10; j = 20; d = 99.101; cout << "値を表示: "; cout << i << ' ' << j << ' ' << d; return 0; } という値を表示するプログラムではコンパイルもうまくいったのですが、次の #include <iostream> using namespace std; int main() { int i; cout << "値を入力: "; cout >> i; cout << "入力した値: " << i << "\n"; return 0; } という入力のプログラムをコンパイルしようとすると、コマンドプロンプトに演算子が使われたクラス ostream では int型の定義が存在しないとなりコンパイルエラーとなってしまいます。 理由が考えてもわからないので、質問してみました。 どのようにすれば、このエラーを解消できるのか知りたいので、どうかご意見をよろしくお願いします。

  • 間接参照演算子(*)による値設定で、「セグメンテーション違反です」となる件について

     以下のコードは、GNU C++でコンパイル出来るのですが、実行時に 「セグメンテーション違反です」 と怒られてしまいます。  何ででしょうか? ============== #include <iostream> using namespace std; int main() { int i = 1; int* ip = 0; // ip = &i; // ←この行のコメントを外すと直ります *ip = 0; cout << "i: " << ip << endl; return 0; }

  • ''C++の条件分岐分からないんですが

    #include<iostream> using namespace std; int main(){ int a; cout << "数値を入力してください\n"; cin >> a; if( a > 30) cout <<"31以上ですね\n"; } else if(a<10){ cout <<"10未満ですね\n"; } else { cout <<"30以下で10以上ですね\n"; } return 0; } これが例文なんですが、 変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる 文字変数mの中身が'a'ならば、『aが格納されています』と表示させて、'a'でないならば『'a'でない文字が格納されています』と表示させたあと、変数bとcを使った『b=b+c』を計算する。 変数aが、変数bより小さい場合には、『aはbより小さいです』と表示し、変数bより大きい場合には、『aはbより大きいです』と表示し、変数bと等しい場合には、『aとbは等しいです』と表示する #include<iostream> using namespace std; int main(){ int a; if(a < b) { __cout("aはbより小さいです\n"); } else { __c = a + b; }return 0; } #include<iostream> using namespace std; int main(){ int a; if(m == 'a') __cout("aが格納されています\n"); } else { __cout("\'a\'でない文字が格納されています\n"); } return 0; } #include<iostream> using namespace std; int main(){ int a; if(a < b) { __cout("aはbより小さいです\n"); } else if(a == b) { __cout("aとbは等しいです\n"); } else { __cout("aはbより大きいです\n"); } return 0; } これ合ってますか?あとプログラミング環境すらないので実行結果教えてもらっていいですか?

  • 【C++】アドレス演算子について質問です。

    アドレス演算子について質問です。 下記のように"&"を関数名の前に付けた場合下記のように出力されます。 &グローバルメソッド:002E1226 &クラス::メンバメソッド:1 1行目はグローバルメソッドなので実態が存在するのでメソッドのアドレスが表示されている。 2行目は実態が存在しないと思うのですが、あってますでしょうか? また、何故1が表示されてしまうのでしょうか? -------------------------------------------------------- #include "stdafx.h" #include <iostream> using namespace std; class Class1{ public: void f(){ return; } }; void Func1(){ return; } int main() { cout << "&グローバルメソッド:" << &Func1 <<endl; cout << "&クラス::メンバメソッド:"<< &Class1::f <<endl; getchar(); return 0; }

  • C++でEXEを作成してCGI-BINで動作させてますが、ブラウザからの入力を受ける方法がわからん

    自前のEXEでTESTとブラウザに表示させることに成功しました =========-- #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "Content-type: text/plain" << endl; cout << endl; cout << "test" << endl; return 0; } ==============--- さて、POSTメソッドで受けた内容や、ウラウザの種類やREFERなどはどうやってEXEで取得するのかがわかりません。教えてください。

    • ベストアンサー
    • CGI
  • 関数 左辺値 参照 返り値 

    こんにちは。宜しくお願い致します。 > たとえば,下のサンプルプログラムでは関数fが参照を返すようになっているため,この関数fを代入の左辺においた,f(a, n) = 10;のような式が許される. > > #include <iostream> > using namespace std; > > int& f(int* a, int n) > { (2)~ return a[n]; > } > > int main(void) > { > const int n = 5; > int arr[n] = { 1, 2, 3, 4, 5 }; (1)~ f(arr, 3) = 10; > for (int i = 0; i < n; ++i) > cout << arr[i] << endl; > return 0; > } 上のサンプルプログラムで左辺値に参照を返す関数が(1)~あるのですが 動作が分りません。 関数内部の(2)~return a[n];というところで、関数の返り値int&の参照はa[n]という変数になるので、(1)~の結果としてa[n]に10が代入されるのでしょうか?教えてください。

専門家に質問してみよう