[解決済み] C ++ error: a expected initializer before [function name] [closed].
2022-02-07 12:04:06
質問
C++を勉強し直しているのですが(学生時代以来)、ちょっといじりたくなって簡単なプログラムを書いてみました。問題は、プログラムをコンパイルするときに、次のように表示され、詰まってしまうことです。 error: 'stringThing'" の前に期待されるイニシャライザー。 は、なぜこのようなことが起こるのか理由があるのでしょうか?私はこれがnoobの質問かもしれないことを知っているので、私はstackoverflowをチェックしましたが、私に答えを与えた関連する質問を見つけることができませんでした。
*GNU GCCコンパイラを使用しています。
コード
#include <iostream>
using namespace std;
void string stringThing (string shiftdir, string &teststring)
{
if (shiftdir == "right")
{
teststring = teststring >> " " >> "Bit Shifted right";
}
else
{
teststring = teststring << " " << "Bit Shifted left";
}
}
int main()
{
string test;
cout << stringThing("right", "I have done a ") << endl;
return 0;
}
解決方法は?
の戻り値の型は
stringThing
はどちらかでなければなりません。
void
または
string
両方ではありません。また
<string>
文字列を使用する場合。
の戻り値を出力したいので
stringThing()
で
main
であるべきだと思います。
std::string stringThing (std::string shiftdir, const std::string &teststring)
しかし、その場合、関数から文字列も返す必要があります。
if (shiftdir == "right")
return teststring + " " + "Bit Shifted right";
else
return teststring + " " + "Bit Shifted left";
を例にとります。
あなたのパラメータ
std::string &teststring
では動作しません。
const char*
引数を使用します。したがって、値によるコピーとして宣言するか
string
のみか、より良い
const string&
.
関連
-
[解決済み】fatal error: Python.h: そのようなファイルやディレクトリはありません
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] Rが解決できない - Androidエラー
-
[解決済み] 型名の後の括弧は、newで違いがあるのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】Enterキーを押して続行する
-
[解決済み】'std::cout'への未定義の参照