ユーザーにファイル名を要求し、入力をメインに戻す関数を作成する必要がある課題があります。これをパラメーターとして渡す必要があります (これは参照渡しを意味すると想定しています)。私は単に最初の関数「getFileName」に取り組んでいます。C++ でこれを行う簡単な方法があることは知っていますが、この方法で行うように指示されています。ここで学ぶ価値のあることがあると確信していますが、把握していません。いずれにせよ、関数を整数として機能させることができました:
#include <iostream>
using namespace std;
void getFileName(int &fileName);
int main()
{
int fileName;
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(int &fileName)
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
整数をテキストに変更しようとすると、問題が発生します。プロトタイプを使用するように言われました:
void getFileName(char []);
ほとんどの場合、配列へのポインターの設定、配列への参照の設定などでエラーが発生します。私の現在のコードは次のようになります。
#include <iostream>
using namespace std;
void getFileName(char &fileName[]);
int main()
{
char fileName[];
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(char &fileName)
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
そして、g ++でエラーが発生します:
assign26.cpp:19: error: declaration of ‘fileName’ as array of references
assign26.cpp: In function ‘int main()’:
assign26.cpp:23: error: storage size of ‘fileName’ isn't known
問題を解決するためのコードを提供していただければ、課題を遂行するのに役立ちますが、何が起こっているのかを理解したいので、解決策を説明してください。与えられたすべての助けに感謝します。
編集
これが機能するコードです。このサイトのメンバーのすべての助けに感謝します!
void getFileName(char fileName[]);
int main()
{
char fileName[256];
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(char fileName[])
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
問題: 配列がどのように機能するかを理解していませんでした。必要のないときに参照によってテキストを渡そうとしていました。また、私が見たはずの構文エラー。