質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

0回答

983閲覧

ファイルの入出力について

kakakaaka

総合スコア17

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/11/05 11:55

編集2017/11/08 06:27
#include <stdio.h> #include <stdlib.h> struct student{ int num; char name[20]; int score; }; struct student St[100] = {{3,"鈴木三郎",86}, {1,"山田一郎",75}, {14,"高橋十四子",93}, {2,"田中二子",68}}; int main(){ int i; FILE *fp; fp =fopen("test.txt","w"); for(i=0; i<4; i++){ fprintf(fp,"%d %s %d\n", St[i].num, St[i].name, St[i].score); } fclose(fp); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakakaaka

2017/11/05 12:02

すみません。でも、内容は少し変わってます。
LouiS0616

2017/11/05 12:03

肝心のfopenの使い方が何も変わっていないようですが。
LouiS0616

2017/11/05 12:04

適当にやってエラーが出るのは当たり前です。自分がわからない点が何かをまず押さえて、わかるところから少しずつ機能を拡張してください。
kakakaaka

2017/11/05 12:04

指摘してもらえませんか?
LouiS0616

2017/11/05 12:05

fopenの第一引数はファイル名です。
kakakaaka

2017/11/05 12:06

今わからないのがstructの中身をどうやってfopenに入れたらいいのかわかりません。
LouiS0616

2017/11/05 12:07

fopenの第一引数はファイル名です。構造体は一切関係ありません。
kakakaaka

2017/11/05 12:11

変なこと言ってたらすみません。fopenのSt[]をdataなどに変えこれがファイル名でrの読み込みはなにを読み込んでるんですか?
LouiS0616

2017/11/05 12:14

fopenはFile openの略です。イメージで言うと、fopenでメモ帳を開き、fprintfで書き込んでいる感じです。メモ帳を開く際には、『これからなにを書くよ』という事前通達は必要ありません。
kakakaaka

2017/11/05 12:19

このプログラムでおかしなところはforからで間違いないでしょうか?
LouiS0616

2017/11/05 12:19

コンパイルしたらわかると思いますが。
kakakaaka

2017/11/05 12:22

動かないんですが、出力したいのはSt[]の中身なので読み込むのはSt[]でしょうか?
LouiS0616

2017/11/05 12:23

まずなんでエラーが起きるか突き止めるのが先決でしょう。動かないものにいくらぜい肉付けたって動かないですよ。
LouiS0616

2017/11/05 12:25

なんでStなら動くと思ったんですか?説明できますか?
kakakaaka

2017/11/05 12:27

まずメモ帳の中身を埋めたくてStを読み込めばできるんじゃないかと思いました。
LouiS0616

2017/11/05 12:28

fopenはファイルを開くための関数です。構造体は一切関係ありません。
LouiS0616

2017/11/05 12:28

第一引数はファイル名って言ってますよね?
kakakaaka

2017/11/05 12:30

すみません、訂正します。
kakakaaka

2017/11/05 12:32

とゆうことは、今はdataという読み込みのファイルが作られてて中身がないとfile dose not exist!と表示されるということで間違いないでしょうか?
LouiS0616

2017/11/05 12:32

それで、元に戻ったわけですが。エラーの原因を突き止めなければいけませんね。まずエラーメッセージをしっかり読んでください。
LouiS0616

2017/11/05 12:34

dataというファイルが作られるわけではありませんが、まあ今までの発言の中では一番的を射てます。
kakakaaka

2017/11/05 12:34

今の時点ではfile dose not exist!   exited with non-zero statusと表示されます。
LouiS0616

2017/11/05 12:35

正しくは、『第一引数に与えられた文字列の名前のファイルを開こうとし、失敗したらfile does not exist!と表示される』ですね。中にデータがあるかどうかは別の話です。
LouiS0616

2017/11/05 12:35

え、コンパイル通ります?
kakakaaka

2017/11/05 12:36

一応通ります。
LouiS0616

2017/11/05 12:37

本当に質問文に書いてあるコードの通りですか?どう考えてもコンパイルが通りそうにないのですが。
kakakaaka

2017/11/05 12:39

貼りなおしました。
LouiS0616

2017/11/05 12:40

エラーだらけですが。コンパイル出来ていないんじゃないですか?どんなコンパイラをどんなふうに使っているんです?
kakakaaka

2017/11/05 12:41

repl.itというのを使ってます。
kakakaaka

2017/11/05 12:47

エラーだらけでした、プログラムの一部が違ってました。
LouiS0616

2017/11/05 14:27 編集

repl.itをちょっと触ってみましたが、いろいろ意味不明な挙動を見せています。別の環境を使えるならそちらをお勧めします。※あとから見た人向け fopenの第一引数が構造体変数名でもなぜか動く。第一引数の型を無視している?
LouiS0616

2017/11/05 12:51

というか、ファイル入出力が必要なプログラムが、果たしてWeb上で動くのだろうか...
kakakaaka

2017/11/05 12:51

別の環境がありません。コマンドプロンプトもclなど使えません。
kakakaaka

2017/11/05 12:52

おすすめとかありますか?
LouiS0616

2017/11/05 12:52

逆に言うと、clが使えるならそれでも良いのでしょうか?パスを通せば使えると思うのですが。
kakakaaka

2017/11/05 12:53

通し方がわかりません。一度調べてみたのですがごちゃごちゃしててわかりにくかったです。
LouiS0616

2017/11/05 12:53

私は中規模な開発はVisual Studioで、小規模なものは適当なエディタ + gccでやってますね。
kakakaaka

2017/11/05 12:54

visual studioは使ったことがあります。これがあればファイルの入出力をできますか?
LouiS0616

2017/11/05 12:55

全く問題なく出来ます。小規模な開発するにはちょっと小回りは効きませんが。インストール済みでしょうか?
kakakaaka

2017/11/05 12:57

まだですね。2016 expressがいいんでしょうか。新しいと無駄なものが多いと聞いたことがあります。
kakakaaka

2017/11/05 13:17

インストールしてみました。
LouiS0616

2017/11/06 02:57

さて、ちゃんとエラーが出ていますかね?どんなプログラマでもエラーは頻繁に出します、これを適切に解決できるのが優秀なプログラマです。(もちろんエラー潰しのスキル以外にも必要なものはごまんとありますが)
kakakaaka

2017/11/08 06:30

visual studio のやり方を教えてくれませんか?私は 開く→ファイル→プロジェクトと思っていてその中には空のソリューションのみあります。
LouiS0616

2017/11/08 06:42

既にソリューションがある場合の操作ですね。初めて開いてなにもファイルがない場合は、新規作成する必要があります。
kakakaaka

2017/11/09 12:56

新規作成→プロジェクト→空のソリューションで作りました。でも、右の枠に作ったのが出てますが左のメインみたいなところは何もありません。
LouiS0616

2017/11/09 13:00

ソリューションに実際のファイルを追加する必要があります。ここらへんは、『Visual Studioの使い方』みたいなサイトが探せばありそうですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問