質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

203閲覧

引数をどのようにとればいいか

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/10/08 04:02

編集2018/10/08 04:44

---read_f関数を呼び出すとき、引数はどのようなものをあたえればいいのか?
教えてほしいです
read_f(この中に、引数をいれるべきなのですが)どのようにいれていけばいいのかわからないです
例えば
void sum(int x,int y){
}
int main(){
sum(4,3)
}
こんな感じにsumの引数は簡単に書くことはできるのですが、今のところ上記のやつは難しくてわからないです

#include <iostream> #include <fstream> #include <sstream> #include <vector> #include <string> using namespace std; int i(0),x; void read_f(const string uho,vector<string> &uhokun){ ifstream ifs(uho); if(!ifs){ cout << uho << "file no exist" << endl; return ; } string str; while(getline(ifs,str,'\n')){ uhokun.push_back(str); i++; } ifs.close(); } int main(){ string x; vector<string> &y; cin >> x; read_f(x,&y); for(int j(0);i != j;j++){ cout << uhokun.bigin() + j << endl; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoichiSugiyama

2018/10/08 06:03 編集

ソースコード自体には問題ないように見受けられます。実行した結果予想と違う動きをしてしまうので、原因を知りたい、とか、確認のためにソースに実際の値を埋め込みたいが、どう記述してよいのか判らない、など疑問点をもっと具体的に書いてもらった方がアドバイスしやすいです。
退会済みユーザー

退会済みユーザー

2018/10/08 14:25

アドバイスありがとうございます
guest

回答3

0

ベストアンサー

こんにちは。

ざっと見て、一箇所問題に気が付きました。(他にもあるかもです。)

read_f(x,&y);

この呼出では y変数(vector<string>型変数)へのポインタを渡しています。
受け取っているのはvector<string>型への参照ですから、そのポインタを渡すことはできません。
y変数をそのまま書けば自動的に参照へ変換されますので、下記で良いはずです。

read_f(x,y);

投稿2018/10/08 06:43

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/08 14:35

おかげさまで、今回の問題は解決しましたが別の問題としてまた出てきた部分があるので、また質問を挙げるつもりですので見てもらえたら幸いです。 ありがとうございました。
guest

0

意味がわからない。
そのまま読めばいいんじゃないの?
何がわからんのか不明瞭だから回答できない...


[追記1]

もしかして「どういうデータを渡すべきか、わからん」ってことでしょうか?

定義を見る限り、
vectorのほうは constがついていないので戻り値として使う可能性がある。(コード的にもそうだし。)

だから今回の場合は、

第一引数: 文字列( 直接でもいいかもしれんが。 )
第二引数: 戻り値扱いの引数で、vector<string> のオブジェクトを渡す

でしょ。

投稿2018/10/08 04:13

編集2018/10/08 05:59
BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/08 14:36

わかりやすく追記してくださって助かりました。 ありがとうございました。
guest

0

lvalue referenceとはなにか勉強しましょう。

そうすることで、他の方の回答がようやく理解できると思います。

さしあたり
C++マニアック,リファレンス=参照の使い方,how to use reference,C++入門,C++言語講座
とか。

投稿2018/10/08 04:17

編集2018/10/08 07:05
yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問