配列の値渡しモドキについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
SABAIRU

配列の値渡しモドキについて

#1

投稿記事 by SABAIRU » 11年前

コード:


#include <stdio.h>

int main(){
	char four_word[5];
	char two_word[3];

	
	puts("4単語を入力");
	fgets(four_word,sizeof(four_word),stdin);
	fflush(stdin);
	puts("2単語を入力");
	fgets(two_word,sizeof(two_word),stdin);
	
	printf("4単語・・・%s\n",four_word);
	printf("2単語・・・%s\n",two_word);
	
	return 0;
}

このコードを以下のように関数化したいのですが、どうすればよいのでしょうか。

・main
  char four_word[5];
char two_word[3];
   の宣言と
   2単語と4単語の出力のみ。

・部品化する関数、名前は func_input()
   4単語を入力と表示、それを変数へ格納。
   バッファをクリアし、
   2単語を入力と表示、それを変数へ格納。


このような感じでお願いします。


自分なりに配列の先頭アドレスを渡してポインタで書き換えたりしたのですが、コンパイルエラーでうまくいきませんでした。
ご教授お願いします。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 配列の値渡しモドキについて

#2

投稿記事 by みけCAT » 11年前

SABAIRU さんが書きました:このコードを以下のように関数化したいのですが、どうすればよいのでしょうか。

・main
  char four_word[5];
char two_word[3];
   の宣言と
   2単語と4単語の出力のみ。

・部品化する関数、名前は func_input()
   4単語を入力と表示、それを変数へ格納。
   バッファをクリアし、
   2単語を入力と表示、それを変数へ格納。


このような感じでお願いします。
「~のみ」ということは、mainからfunc_input()を呼び出してはいけないのですか?
それはコンパイルオプションでエントリポイントを変えないと無理だと思います。
SABAIRU さんが書きました:自分なりに配列の先頭アドレスを渡してポインタで書き換えたりしたのですが、コンパイルエラーでうまくいきませんでした。
そのコードを貼っていただけますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 14年前

Re: 配列の値渡しモドキについて

#3

投稿記事 by box » 11年前

SABAIRU さんが書きました:

コード:

	fflush(stdin);
標準入力に対してfflushしたときの動作は未定義であるような気が…。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

閉鎖

“C言語何でも質問掲示板” へ戻る