
No.39ベストアンサー
- 回答日時:
>単なるテキストファイルの例です。
内容はどこに打てば良いのでしょうか?
terapadを起動し、文字を打ち込みます。
そして、保存するとき、「名前を付けて保存」を選択し、sample.txtの名前を付けて保存します。
必ず、goo2.cを格納しているフォルダに保存してください。
(必ず同じフォルダの下にsample.txtとgoo2.cがあるようにします)
No.38
- 回答日時:
No37の続きです。
下記のサイトも候補としてよさそうです。
一週間で身につくC言語の基本
おさえておきたいプログラミングの基本
https://c-lang.sevendays-study.com/
ざっと読んでみて、あなたにとってしっくりくる方を選べばよいかと思います。
No.37
- 回答日時:
>①FILE fpと、の意味
回答:
FILE *fp;
はFILE型のポインタ変数fpです。ファイルを扱うときに使用します。
詳細は、
https://9cguide.appspot.com/index.html
の17章:ファイルの取り扱い
を読んでください。
>②char *p の、*はどういう意味なのでしょうか?後、
回答:
char *p;はchar型のポインター変数です。
ポインターについては、
https://9cguide.appspot.com/index.html
の15章:ポインタ変数の仕組み
を読んでください。
>③sample.txt の例です。
回答:
単なるテキストファイルの例です。内容は
AAA
BBB
CCC
でも
aioue
kakikukeko
でも構いません。
そもそもの話ですが、
return 0 とreturn 1を使うときの例を示すというのが、このソースの目的です。
ファイルをオープンしたときに、エラーが発生したら、return 1で終了する。
最後まで、実行した場合は、return 0で終了するということが、理解できれば、それで十分かと思います。
細かいところが、気になりいろいろと疑問がわいてくるのは、仕方ありませんが、
一度に、全てを理解しようとするのではなく、少しずつ基礎から一歩一歩進めてはいかがでしょうか。
その例として
https://9cguide.appspot.com/index.html
を1章から順に最後まで読まれてはいかがでしょうか。練習問題は必ず行ってください。
そこで、不明点があれば、質問するのが良いかと思います。
質問の際は、出典を明確にできるので、第三者が非常に回答しやすくなります。
上記のサイト以外にあなたが、理解しやすいサイトなり参考書があれば、それでもかまいません。
但し、出典を明確にし、第三者が簡単にその情報を共有できる方が、回答が得られやすくなります。
No.36
- 回答日時:
>このプログラムの関数の解説と、sample.txtの例です。
解説をつけました。
#include <stdio.h>
int main(void)
{
FILE *fp;
char data[1024];
char *p;
int ctr = 0; /* 読み込み件数:初期値は0*/
fp = fopen("sample.txt", "r"); /*sample.txtを読み込み用にオープンする*/
if (fp == NULL){ /*エラーがあれば:*/
printf("file open error\n"); /*エラー表示*/
return 1; /*エラーなので return 1 */
}
while(1){ /*以下を繰り返す*/
p = fgets(data,1024,fp); /*1行 読み込む*/
if (p==NULL) break; /* ファイルの終端に達して、もうデータがないなら 繰り返しを抜ける*/
ctr++; /*読み込み件数に1加算する。*/
}
fclose(fp); /*ファイルをクローズ*/
printf("record count=%d\n",ctr); /*読み込み件数を表示*/
return 0; /* 正常なのでreturn 0*/
}
すみません。3つほど質問があって、①FILE fpと、②char ✴︎p の、✴︎はどういう意味なのでしょうか?後、
③sample.txt の例です。
This is a pen.
I have a book.
Are you ready?
はどういう事なのでしょうか?
No.35
- 回答日時:
>では、なぜ、今回組んだプログラム(goo1.c)で、return1を使わなかったのでしょうか?
エラーになるケースがなかったからです。
(厳密にいえばエラーになるケースはあるかもしれないが、通常は考えなくて良いからです)
>それと、return 1を使う例を簡単なプログラムで例を挙げて頂けると幸いです。
以下のようなプログラムです。
ファイル名:smaple.txtを読み込み、その行数を画面に表示します。
#include <stdio.h>
int main(void)
{
FILE *fp;
char data[1024];
char *p;
int ctr = 0;
fp = fopen("sample.txt", "r");
if (fp == NULL){
printf("file open error\n");
return 1;
}
while(1){
p = fgets(data,1024,fp);
if (p==NULL) break;
ctr++;
}
fclose(fp);
printf("record count=%d\n",ctr);
return 0;
}
----------------------------------
sample.txtを同じフォルダにおいて、実行してください。
その行数を表示します。
sample.txtの例です。
This is a pen.
I have a book.
Are you ready?
sample.txtがないと、エラー表示し、return 1;を実行します。
実際にコンパイル&実行して確認してください。
ソースファイル名はgoo2.cとしてください。
No.33
- 回答日時:
>処理の途中で、異常を検知し、最後まで実行せず、途中でreturnするときに、0以外でreturnします。
というのは、言い換えれば、デバッグ作業をするときにということでしょうか?デバッグ時には、わざとエラーが発生するようにして、試験するので、
そのようになります。
但し、本番(実際の運用時)でも、発生する可能性はあるので、
ソースは、そのままにしておきます。
(デバッグが終わったからといって、途中でreturnする行を削除することはありません)
つまり、デバッグ作業のときにreturn0とreturn 1を1つのプログラムで、使うことはあるのでしょうか?教えて頂けると幸いです。
No.32
- 回答日時:
>①returnの所で、return1とすることは、無いですよね?
下記の続きでしょうか。
>①return 0は、0=成功、1=失敗の、0でしょうか?
それであれば、return 1;とすることはありません。
処理の途中で、異常を検知し、最後まで実行せず、途中でreturn するときに、0以外でreturn します。(return 1,return 2等)
厳密にいえば、いくつの値で、returnするかは、そのプログラムを作成した人の決め事なので、自由に決めて構いません。
俺は、return 1;が正常で、return 0;が異常にしたいといえば、それで構いません。但し、ほかの方からひんしゅくを買いますが。
それは、変数に名前を付ける時に
男の人数ならint man_count; とし
女の人数ならint woman_count; とするのが普通ですが、
これを
男の人数ならint woman_count; とし
女の人数ならint man_count; としても、プログラムは動作します。
ただし、そのようなプログラムは誤解を招くので、通常はそのようにはしません。
それと同じ理由で、通常は、正常終了時、 return 0;とします。
処理の途中で、異常を検知し、最後まで実行せず、途中でreturnするときに、0以外でreturnします。というのは、言い換えれば、デバッグ作業をするときにということでしょうか?教えて頂けると幸いです。
No.31
- 回答日時:
>その関数(サブルーチン)の知識を十分に身につけるためには、どのような本を読めば良いのでしょうか?
苦しんで覚えるC言語(下記URL)
https://9cguide.appspot.com/index.html
の
11章:関数の作り方
練習問題11
を一通りやって理解してください。
No.30
- 回答日時:
>①return 0は、0=成功、1=失敗の、0でしょうか?
はい。その意味で使っています。
>②printfで、/nを使っていますが、なぜ、sprintfで、/nは間違いだと言ったのでしょうか?
説明上の都合です。
sprintf(data,"number=%d\n", num);
とした場合は、dataの内容は
data[0]='n'
data[1]='u'
data[2]='m'
data[3]='b'
data[4]='e'
data[5]='r'
data[6]='\n'
data[7]='\0'
となります。
\nがない方が、わかりやすいかと思い、\nをとりました。
\nをつけても、C言語上は、全く問題ありません。
>③vsprintfは、sprintfや printfなどの関数と何が違うのでしょうか?
vsprintfはvprintfの変数へ出力するバージョンです。
printfとvprintfは画面に出力
sprintfとvsprintfは変数に出力
になります。
printfとvprintfの違いが判れば、sprintfとvsprinfの違いも分かるかと思います。
現時点で、vprintfの機能について説明するのは難しいので、説明は省かせてください。「可変長引数に対応するprintf機能を実現するためのもの」
というのが、回答ですが、これでは、なんのことかわからないと思います。
あなたが、関数(サブルーチン)について、十分な知識がついたときに、
機会があれば説明しますので、そのことだけを覚えておいてください。
関数(サブルーチン)について十分な知識がついたら、gooで質問してください。その時に、質問が目に付けば、回答します。
使用例としては
https://www.ibm.com/docs/ja/zos/2.3.0?topic=func …
に例があります。
只、使う機会は、めったにないので、今は、覚える必要はないかと思います。スキルとしては中級者以上で使用する関数です。
その関数(サブルーチン)の知識を十分に身につけるためには、どのような本を読めば良いのでしょうか?教えて頂けると幸いです。教えて頂けると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 putchar関数 2 2021/12/06 17:50
- C言語・C++・C# C言語の問題です。大至急回答お願いします 次の条件を満たすキュー・プログラムを作成せよ。 ①キューに 1 2021/12/05 01:35
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語 ループ中からの関数の呼び出し方のコーディング 2 2021/11/02 09:33
- MySQL PHPで「myql関数」が使用できない場合、mysql のために PHPを学習する意味はありますか? 2 2021/12/24 16:37
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
C言語 コマンドプロンプトについて。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
CSVファイルへの保存の際、デー...
-
RPGでファイル名(もしくはレコ...
-
dataファイルをxtxファイルにす...
-
csvファイルを開かずに文字を検...
-
VBに、Cのincludeのようなもの...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
ファイル名の先頭にアンダース...
-
C言語のfopenについて教えてく...
-
ダイアログボックスで複数フォ...
-
グローバル変数のよくない使い...
-
COBOLでの可変長定義について
-
VC++でのiniファイルの読み書き
-
Excelマクロでの再読込み方法
-
UNICODE文字が書き込めるWritep...
-
ファイルオープンの際のウィン...
-
FileOpen 関数で既にファイル...
-
VisualBasic.Netのフォーム上か...
-
フリーソフトウェアでflaファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
大きいサイズのテキストファイ...
-
グローバル変数のよくない使い...
-
テキストファイルの最終行を削...
-
マウスポインタの変更
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
VBに、Cのincludeのようなもの...
-
ドラッグアンドドロップでファ...
-
C言語のfopenについて教えてく...
-
dataファイルをxtxファイルにす...
-
RPGでファイル名(もしくはレコ...
-
ASP .NETでファイル選択ダイア...
-
ダイアログボックスで複数フォ...
-
同じ名前のファイルを作った場...
-
SGファイルって何ですか?
-
ファイルの結合
-
Excelマクロでの再読込み方法
おすすめ情報
NULL文字とは、文字列を区切るものなのでしょうか?教えて頂けると幸いです。
コンパイルは成功しました!ありがとうございました!ですが、質問のscanf関数がどういうものかというのが、いまいちつかめません。教えていただけると幸いです。
迅速な回答大変恐縮です。すみませんが、3つほど教えて頂けると幸いです。以下の通りです。
①return 0は、0=成功、1=失敗の、0でしょうか?
②printfで、/nを使っていますが、なぜ、sprintfで、/nは間違いだと言ったのでしょうか?
③vsprintfは、sprintfや printfなどの関数と何が違うのでしょうか?