macのXcodeにおけるcinについて

このQ&Aのポイント
  • macOSXver10.4.11のXcode2.4.1でC++言語の勉強をしていますが、std::cin >> str1;で'operator>>'のエラーが出ています。
  • ソースコードの一部には、std::cinを使用してユーザーからの入力を受け取り、エラーが発生しているようです。
  • 質問者は、今XcodeでC++言語の勉強をしていますが、std::cinを使用する際にエラーが発生し、原因が分かりません。
回答を見る
  • ベストアンサー

macのXcodeにおけるcinについて

現在macOSXver10.4.11のXcode2.4.1を用いて C++言語の勉強をしています。 以下のソースをコンパイルしようとしてますが「std::cin >> str1;」の行で「error: no match for 'operator>>' in 'std::cin >> str1;'」と出てコンパイルに失敗します。 原因が分かる方がいればご教授願います。 #include <iostream> #include <stdio.h> int main (void) { char *str1[32], *str2[32]; std::cout << "何か入力して下さい ==>"; std::cin >> str1; std::cout << "あなたは" << str1 << "と入力しましたね。" << std::endl; printf("何か入力してください。==>"); scanf("%s",str2); printf("あなたは、%sと入力しましたね。\n",str2); return 0; } 初歩的な質問ですみませんがご回答の程よろしくお願い致します。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

cinがどうのこうのという話でなくて、 >char *str1[32], *str2[32]; ポインタの配列で、本当にいいのでしょうか? という話です。

kame0927
質問者

お礼

早速の返信ありがとうございます。 コンパイルに成功しました。 ありがとうございました。

関連する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
  • Consoleアプリケーションの、「cin >>」について

    //一文字入力のつもりで、作ったのですが、 //「abcd」と打って、Enterすると、 //「a」→「A」 //「b」→「B」 //「c」→「C」 //「d」→「D」 //と、連続変換するのですが、 // cin >> -- ; というのは、 //どういうことでしょうか? // すみません、初心者です。 // よろしくお願いします。 #include <iostream> using namespace std; int main() { char inputchar; char outputchar; char Str1[12],Str2[12]; int chrcode; while(chrcode-120) { cin >> inputchar; chrcode = ( inputchar + inputchar ) / 2; if(chrcode >=65 && chrcode<=90) { outputchar=inputchar+'a'-'A'; strcpy(Str1,"大文字"); strcpy(Str2,"小文字"); } if(chrcode >=97 && chrcode<=122) { outputchar=inputchar-'a'+'A'; strcpy(Str1,"小文字"); strcpy(Str2,"大文字"); } cout << Str1 << "[" << inputchar << "]→" << Str2 << "[" << outputchar << "]" <<endl; } return 0; }

  • stringクラスのオブジェクト

    C++にて下記のソースをVC++にてコンパイルすると「'string'定義させていない識別子です。」などどエラーがでてしまいます。BC++では何も問題ないのですが・・・。なぜなのでしょうか? #include <iostream.h> #include <string.h> void main(){ string s; cout << "貴方の名前は?" <<endl; cin >> s; cout << s <<"さん、こんにちは"<<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; } お願いします。

  • 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文字という文字制限をなくしたい場合どういった工夫をすればいいのでしょうか?

  • C++

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

  • 質問です。。。

    いつもすみません。また質問させていただきます。 まずしたのプログラムを見てください・・・ #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行目のプログラムができたのですが、どういうことなのでしょうか? 表現が一部変ですがよろしくお願いします。

  • 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 終了

  • 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を一度だけ使って表現せよって言うのが分かりません。実行結果も含めて教えてもらえませんか?

  • プログラムの動作

    10文字をスキップするプログラムなのですが、どのようにスキップしているのかわからないので教えてください。 下にソースコードを書きます。 #include <iostream> using namespace std; //10文字をスキップする istream &skipchar(istream &stream) { int i; char c; for(i=0; i<10; i++)stream >> c; return stream; } int main() { char str[80]; cout << "いくつかの文字を入力する:"; cin >> skipchar >> str; cout << str << endl; return 0; } よろしくおねがいします。

専門家に質問してみよう