プロが教える店舗&オフィスのセキュリティ対策術

c言語初心者です。初心者故、間違った言い回しをしているかもしれないので、あったら訂正してほしいです。それで質問が、グローバル変数として宣言した配列に、一つ目の関数でscanf等で文字列の入力を促してグローバル変数に代入(?)し、二つ目の関数でprintfで表記させたいのに、いろいろ試しましたが代入ができていないみたいで全く表記がされません。なにか必要な宣言などがあるのでしょうか?

質問者からの補足コメント

  • 変に考えすぎておかしなことになっているかもしれないので、間違っているところどんどん指摘してほしいです。ちなみに半角英数字一文字の受け渡しを同時に行っています。
    #include<stdio.h>

    char mojiretu[100];

    int moving(char moji);

    int main(void){
    char moji;
    char dumy[10];

    /*半角英数字一文字の入力*/
    scanf("%c",&moji);
    moving(moji);

    /*文字列の入力*/
    scanf("%s",mojiretu);
    fgets(dumy,sizeof(dumy),stdin);

    return 0;
    }

    int moving(char moji){

    printf("%c\n",moji);
    printf("%s\n",mojiretu);

    return 0;
    }

      補足日時:2020/12/23 00:33

A 回答 (8件)

よう分からんのだけど。



> グローバル変数として宣言した配列に、一つ目の関数でscanf等で文字列の入力を促してグローバル変数に代入(?)し、二つ目の関数でprintfで表記させたい

これじゃダメなの?

/* ここから */

#include <stdio.h>

char mojiretsu[100];

int main(void) {
 scanf("%99s%*[^\n]%*c", mojiretsu);
 puts(mojiretsu);
 return 0;
}

/* ここまで */

ホントは何がやりたいのかよう分からんけど、

> 変に考えすぎて

うん、変に考えすぎてる気がしてる。
    • good
    • 0

まずどんなプログラムを書いたのか示すと良いかと

    • good
    • 0

ひょつとしてprintf にmojiretsu を渡して呼び出した「後」に


mojiretsu に文字列を入れると画面が変わると思ってる?
    • good
    • 0

>movingの中でprintfしてもできないのですか?


できるけど、mojiretsuが入力される前に呼び出しても
入力される前の内容が表示されるだけ。
    • good
    • 0
この回答へのお礼

ごめんなさい理解力がなくてよく分かりません。つまりどうすればいいのか教えてほしいです。申し訳ないです。

お礼日時:2020/12/23 11:34

moving の後に mojiretsu を入力してるけど・・・

    • good
    • 0
この回答へのお礼

main関数とは別の関数でmojiretuを表記させるようにしたいのですが、movingの中でprintfしてもできないのですか?

お礼日時:2020/12/23 09:26

main から moving を呼び出したときに, 「その時点での」配列 mojiretu の内容を表示してるね.

    • good
    • 0

一つ目の関数、二つ目の関数とおっしゃいますが


mainの他にはmovingしか書かれていませんよ?

2回目のscanfの後にprintfしないままmainが終了しているので
代入された結果が見えていないだけと思います。
    • good
    • 0

特に必要な宣言などはありませんよ。


一度ソースコードをここに書いてみては?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!