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

printf、scanf関数:標準入出力に対して使用
fprintf、fscanf:ファイルに対して使用
sprintf、vsprintf、sscanf:メモリに対して使用
とあるのですが、これらの関数の違いが分かりません。教えて頂けると幸いです。

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

  • NULL文字とは、文字列を区切るものなのでしょうか?教えて頂けると幸いです。

    No.6の回答に寄せられた補足コメントです。 補足日時:2023/11/02 17:53
  • うーん・・・

    コンパイルは成功しました!ありがとうございました!ですが、質問のscanf関数がどういうものかというのが、いまいちつかめません。教えていただけると幸いです。

      補足日時:2023/11/07 03:29
  • うーん・・・

    迅速な回答大変恐縮です。すみませんが、3つほど教えて頂けると幸いです。以下の通りです。
    ①return 0は、0=成功、1=失敗の、0でしょうか?
    ②printfで、/nを使っていますが、なぜ、sprintfで、/nは間違いだと言ったのでしょうか?
    ③vsprintfは、sprintfや printfなどの関数と何が違うのでしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/11/07 20:17

A 回答 (39件中11~20件)

>1は、gcc (x86_64-posix-seh-rev0, Built by MinGW-Builds project) 13.2.0・・・



OKです。インストールは成功しています。

>2は、c:\STUDY>と出ました。この後どうすれば良いのでしょうか?
コンパイルが成功したので、
①goo1と入力します。
②キーボードからの入力待ち状態になるので、
そこで任意の数字(例えば123)を入力します。
③入力した値が、画面に表示されます。
(添付図参照)

②の部分が、
scanf("%d", &data); /* 入力部分 */
の行になります。
③の部分が
printf("%d\n", data);
になります。

つまり
scanfはキーボードから数字が入力されたものを、変数(data)に格納する
処理を行っています。

printfは、変数(data)の内容を画面に出力する処理をしています。
「C言語関数違いについて。」の回答画像29
    • good
    • 0

>1は、訂正で、'gcc' は、内部コマンドまたは外部コマンド、


操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。
>2は、1と同様の画面で、'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。どうすれば良いのでしょうか?教えていただけると幸いです。

pathが通っていない場合、そのようなメッセージになります。

pathを通すべきフォルダはmingw64直下のbinです。
あなたのインストールしたフォルダがわからないので、仮に
c:\XXXXのフォルダにインストールしたとします。
その場合、pathを通すべきフォルダは、c:\XXXX\mingw64\bin
になります。

あなたは、pathを通すフォルダをどのように指定しましたか。
そのフォルダ名を教えてください。
そのフォルダ名が正しければ、
1,2とも期待した結果になるはずです。
    • good
    • 0
この回答へのお礼

pgフォルダを作って移動させました。結果は、1は、gcc (x86_64-posix-seh-rev0, Built by MinGW-Builds project) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.と出ました。
2は、c:\STUDY>と出ました。この後どうすれば良いのでしょうか?教えていただけると幸いです。

お礼日時:2023/11/07 03:23

>何度もすみません。

やはり、x86をインストールしました。画像の通りに何とかなりました。すみません。pathは何を通せばいいのでしょうか?

c:\の直下にインストールしたなら
c:\mingw64\bin
にpathを通します。

下記の通りにインストールしたなら
https://www.javadrive.jp/cstart/install/index6.h …
c:\pg\mingw64\bin
にpathを通します。
    • good
    • 0
この回答へのお礼

1は、訂正で、'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。
2は、1と同様の画面で、'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。どうすれば良いのでしょうか?教えていただけると幸いです。

お礼日時:2023/11/06 20:55

>x86の方です。


>とりあえず、Mingw32というフォルダがある状態です。教えて頂けると幸いです。ですが、その中にあるbinフォルダの中は、空なのですが。

x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z
をインストールしたと理解しました。
そうすると、Mingw32というフォルダは作成されません。
mingw64という親フォルダが作成されます。その中に
 bin
 x86_64-w64-mingw32
が作成されます。
x86_64-w64-mingw32の中にbinが作成されます。

mingw64直下のbin、
x86_64-w64-mingw32直下のbin
の何れにもファイルが格納されています。
(添付図参照)


もし、x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z
して、上記の状態になっていないなら、何かが間違っている可能性があります。

又、No25の結果はどうなりましたでしょうか。
「C言語関数違いについて。」の回答画像26
    • good
    • 0
この回答へのお礼

何度もすみません。やはり、x86をインストールしました。画像の通りに何とかなりました。すみません。pathは何を通せばいいのでしょうか?
1は、訂正で、'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。
2は、1と同様の画面で、'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出てきました。どうすれば良いのでしょうか?教えていただけると幸いです。

お礼日時:2023/11/06 20:08

1.コマンドプロンプトで


gcc --version
と入力し、表示された結果を提示してください。

2.ソースのあるフォルダに移動し、
gcc goo1.c -o goo1
と入力、その結果を提示してください。

goo1.cは、例の下記の内容が記述されているファイルです。
#include <stdio.h>

int main(void)
{
int data;
scanf("%d", &data); /* 入力部分 */
printf("%d\n", data);
return 0;
}
    • good
    • 0
この回答へのお礼

すみません。TDM-gcc-32を再インストールしました。
1は、gcc (tdm-1) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
と出ました。教えていただけると幸いです。

お礼日時:2023/11/06 19:21

>インストールが完了しましたという事です。

とりあえず、Mingw32というフォルダがある状態です。教えて頂けると幸いです。ですが、その中にあるbinフォルダの中は、空なのですが。

インストールしたのは、x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7zではなく、TDM-gcc-32ですか。どちらでしょうか?
    • good
    • 0
この回答へのお礼

x86の方です。教えて頂けると幸いです。

お礼日時:2023/11/06 16:04

>その後は、どうすれば良いのでしょうか?



x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z
のインストールが完了したということでしょうか。

それとも、TDM-gcc-32のフォルダの削除が完了したということでしょうか。
    • good
    • 0
この回答へのお礼

インストールが完了しましたという事です。とりあえず、Mingw32というフォルダがある状態です。教えて頂けると幸いです。ですが、その中にあるbinフォルダの中は、空なのですが。

お礼日時:2023/11/06 08:27

>TDM-gcc-32というフォルダーならありますが。

これは違うのでしょうか?

それです。それをフォルダ毎削除してください。
そのあと、下記URLを参考にしてインストールします。
https://www.javadrive.jp/cstart/install/index6.h …

ダウンロードするファイルは下記を選択します。
x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z
    • good
    • 0
この回答へのお礼

その後は、どうすれば良いのでしょうか?教えていただけると幸いです。

お礼日時:2023/11/06 05:25

>それは、binフォルダーなどでしょうか?



binフォルダーとは具体的には、何のフォルダーでしょうか?

以下の何れかに該当するフォルダがあれば、そのフォルダが対象になります。フォルダ毎削除してください。
c:\mingw とか c:\minw64 とかのmingwの文字があるフォルダはありますか。
C:\Program Files の下にmingw等のフォルダがありますか。
C:\Program Files(x86) の下にmingw等のフォルダがありますか。
    • good
    • 0
この回答へのお礼

すみません。TDM-gcc-32というフォルダーならありますが。これは違うのでしょうか?教えていただけると幸いです。

お礼日時:2023/11/05 20:59

下記URLをみてインストールしたということでしょうか。


https://www.javadrive.jp/cstart/install/index6.h …

であれば、フォルダ毎削除すればよいので、インストールしたフォルダを教えてください。
    • good
    • 0
この回答へのお礼

それは、binフォルダーなどでしょうか?どれをインストールしたかもう忘れてしまって。すみません。

お礼日時:2023/11/05 20:28

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A