こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Return で文字列が返せない、、

このような関数を作って、mainの関数に渡したいのですが、文法がダメだとコンパイラに怒られます。
private String test(){
try{
FileOutputStream fos=openFileOutput("sample.txt", MODE_PRIVATE);
String text="サンプルテキストです";
fos.write(text.getBytes());
fos.close();
}catch(FileNotFoundException e){
}catch(IOException e){
}

try{
FileInputStream fis=openFileInput("sample.txt");
byte buffer[]=new byte[100];

fis.read(buffer);
String str = new String(buffer).trim();
fis.close();
return str;

}catch(FileNotFoundException e){
}catch(IOException e){
}
}なぜ返せないのでしょうか。

投稿日時 - 2014-01-08 13:58:15

QNo.8420350

困ってます

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

関数間での文字列の受け渡しはできませんので、ポインタを使用するかグローバル変数での受け渡しになります。

str buff(100);
main{
try;
}

とか
main{
srt buff(100);
buff = try;
}
みたいな形になると思いますよ。

投稿日時 - 2014-01-08 14:21:40

お礼

なるほど、、、関数間での文字列の受け渡しができない(!?)ことがわかっただけでもありがたいです。
main関数の中でかっこつけないでやっていきます。

ありがとうございます!!!

投稿日時 - 2014-01-08 14:54:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

あと蛇足ですが、
> 文法がダメだとコンパイラに怒られます。
エラーメッセージを見れば問題箇所の特定が劇的に容易になります。
質問する際はエラーメッセージを必ず記載するようにしましょう。

投稿日時 - 2014-01-08 14:29:08

お礼

そうしたかったのですが、、、コンパイルする以前に、「×と電球」が出てしまっていて、コンパイル時のエラー文も出ていない状態でした。
こういう場合、どうやってエラー文を出したらいいのでしょうか。

投稿日時 - 2014-01-08 14:57:01

ANo.2

値を返さないコードパスがありますね。

2つめのtry~catchで例外が発生したときの戻り値がありません。

投稿日時 - 2014-01-08 14:25:42

お礼

ありがとうございます。
main関数に直書きで対処いたします。

投稿日時 - 2014-01-08 15:00:30

あなたにオススメの質問