学校の授業でC言語でのプログラミングを勉強しています.
Ubuntuでプログラムを書いているのですが,先日,
ファイルを開き,その中身のデータを用いた計算をして,別のファイルに保存する
というプログラムを書く内容の課題が出ました.
先生からテキストファイルが与えられているのですが,右クリックで 名前を付けて保存 を押して保存しても,プログラムの中で fopen を使ってファイルを開くことができません.
また,エクスプローラーの中でUbuntuを検索して,それと同じファイルにいれればいいのかと考えたのですが,検索することでしかUbuntuのファイルを見つけることができませんでした.
どうすればプログラムの中でデータの入ったテキストファイルを使うことができるでしょうか.
No.5ベストアンサー
- 回答日時:
> ご回答ありがとうございます.
> ダウンロードされたものを見つけることはできました.
> また,エクスプローラー上で無理やりUbuntu内のディレクトリにコピーすることができました.
うーん、ちょっと待って。
最初に環境確認したけど、やっぱWSL?「コンピュータのOSとしてUbuntuをインストールして使っているわけではない」?
エクスプローラって言ってるけど、それは「Windows」のエクスプローラですかね?
つまり、さっきから言ってるのは
「Windows上のwebブラウザでダウンロードしたブツをWSL側から探せない」
って話なんですか?
だとしたら
「そりゃフツーはそうだろ」
ってだけの話なんですが(笑)。いや、出来ないたぁ言わないけど、今やってるみたいにメンドくせぇ事になってんじゃねぇかな(笑)。
> また,エクスプローラー上で無理やりUbuntu内のディレクトリにコピーすることができました.
どこに入れたんでしょうか。キチンと/homeディレクトリ内に入れました?変なトコに入れてない?ああダメよよしてそこは後ろの穴よ(謎
WSLだったら多分デスクトップ環境は無くって、ホンマ端末だけの環境なんかな。
ううん・・・ええとねぇ・・・。
まず、Ubuntuでファイルをダウンロードする方法から教えます。
Linuxにはwgetと言うプログラムがあるのね。一回端末から
wget --version
って打ってみて下さい。入ってたら色々とwgetと言うソフトのバージョン情報やら何やら表示されます。
入ってなかった場合、
sudo apt install wget
と打って、Ubuntuにwgetと言うソフトウェアをインストールします。
それで、端末で、
wget ダウンロードしたいファイルのHTTPアドレス
でホームフォルダに目的のブツがダウンロードされます。
このwgetってコマンドはかなり強力で、通常のブラウザでダウンロード出来ない、保護されたようなブツでもヘーキで取ってきたりするコマンドです。エロ画像とかダウンロードするのに良く使われます(謎
それはさておき、その先生が提示したアドレスを使ってwgetでダウンロードした方がまず間違いがないでしょうね。
それで、あとはプログラムファイル自体が/home直下なのか、そしてコンパイルしたa.out(まあ、名前付けてるのかもしれないですが)も/home直下にあるのか、確認して下さい。
そして、プログラムを端末から実行する際、端末で(作ったプログラムがa.outだと仮定して)、
a.out
ではなくって
./a.out
と打って起動します。前者は、フツーは「起動した際のリスクを回避する為に」禁じ手になっています。
ありがとうございます!
おっしゃる通りです,私が使っていたのがWindowsのエクスプローラーなんです...
表現が本当にわかりづらかったですよね,なんといえばいいのかわからなくて,とても言葉足らずでした,本当にごめんなさい!
現在,学校のサイトがメンテナンス中のため,HTTPアドレスが拾って来れないのですが,拾えるようになったらすぐにでも拾って来ようと思います!
本当にありがとうございます!
非常に助かりました...!
No.4
- 回答日時:
> 名前を付けて保存 ではなく,保存 を押せば自動的にそこに入るようになっているのでしょうか.
それは「ブラウザからダウンロードして」って事ですかね。
まあ、Linuxディストリビューションによって違うんでしょうが、さっきも書いた通り、どのディストロでも基本、入ると「/home」フォルダが作業場になってて、ユーザーはそこで作業するようになっています。そして、ユーザーにまつわる設定やフォルダも全部そこにある。
んで、WindowsみたいなGUI環境が最近では当たり前なんで、/homeフォルダ直下に、例えば「デスクトップ」があったり、ダウンロードしたブツを入れる「ダウンロード」フォルダが存在したりしてます。この辺はWindowsの環境を模してる例が多いです。
(余談ですが、元々UNIXは「マルチユーザー」による「マルチログイン」が前提なOSなんで、そのため、個人にまつわる設定は、ホームフォルダごとユーザー毎に作られるようになっています。)
そうすると、現時点、そのテキストファイル(データ)がどこにあるのか、って事なんですが、ダウンロードフォルダ内を見るには端末で
ls ダウンロード/
と打てばダウンロードフォルダ内に何があるか一覧表示してくれます。
ダウンロードしたブツが見つけられましたか?無ければ別の場所にあるんでしょう。
その場合、どっちにせよ、/homeフォルダ内のどっかにあるだろうから(さっき書いた通り、UNIX/Linuxだと通常、/homeフォルダ以外は管理者権限の嵐なんで、そこらに何かのブツをダウンロードする、と言うのは管理者権限がないと出来ない)、/homeフォルダから次のコマンドを走らせて目的のブツを見つけましょう。
find . -name "目的のファイル"
どこにあるか確定したら、そいつを/homeフォルダ直下に持ってくるなり、あるいは、fopenにfindコマンドで表示されたパスを埋め込めば、題意を満たせると思います。
ご回答ありがとうございます.
ダウンロードされたものを見つけることはできました.
また,エクスプローラー上で無理やりUbuntu内のディレクトリにコピーすることができました.
その後,プログラムを用いて fopen で開こうと思ったのですが,開くことができませんでした.なにかまだ問題があるのでしょうか...
質問ばかりで申し訳ないです.
答えていただけたら幸いです.
No.3
- 回答日時:
>すみません,どのディレクトリにあるかわからないです.
Ubuntuは使っていませんが、その親であるDebianではホームディレクトリにDownloadというディレクトリがあって何も指定しなければそこにダウンロードされるので、Ubuntuでも同じではないかと思います。
No.2
- 回答日時:
> Ubuntuでプログラムを書いているのですが
ちょっと状況が読めないんですが、仮想環境か何かなんですかね。WSL?
> プログラムの中で fopen を使ってファイルを開くことができません.
Ubuntuの問題と言うより、
1. プログラムがUbuntuのどこに置いてあるのか分かっていない
2. fopenで開く時に渡すパスがハッキリしていない。
の2つでしょう。んで、一般論的に言うと「何とも言いようがない」です。
まず、プログラムを保存すべきフォルダですが・・・・。うーん。
基本的にUbuntu等のUNIX/Linux系全般に言える事ですが、「個人の為の作業フォルダ」ってのがありまして、通常/homeフォルダ(あるいは専門的にはディレクトリ)と呼ばれるブツがあります。ここがログインした際に入る場所と大体なっています。Windowsで言うと・・・多分、一種「ドキュメント」フォルダでしょうねぇ(ちょっと違うかもしれませんが)。
いずれにせよ、この場所(/home)フォルダはデフォルトで色々とパスも通ってますし、ここが「個人の作業用」として作られてる以上、個人で使うファイル(プログラムファイルやデータファイル)もここに作ったり、あるいは、ここにまたフォルダを作って作業したりします。
原則、UNIX/Linuxだと「ユーザー」はホームフォルダ以外には顔を出さないんですよ。このフォルダ以外の場所だとWindowsでも悪名高い「管理者権限」だらけのフォルダばっかで、素人がそこを触るとシステムが壊れてしまいます。怖いですねぇ。
取り敢えずUbuntuを使う際・・・端末で
pwd
と打って、今いる場所を確認して下さい。恐らく
/home/ユーザー名
と表示されるでしょうから(希望的観測)、そうであれば、そこがホームフォルダです。データもプログラムもそこに置いておけば、fopenですぐ開く事が可能だと思います。
ご回答ありがとうございます.
はい,今いる場所はそのように表示されました.
名前を付けて保存 ではなく,保存 を押せば自動的にそこに入るようになっているのでしょうか.
詳しく教えていただきありがとうございます!
No.1
- 回答日時:
保存先のパス名が、/xxx/yyy/zzz/file.txtだとするならば、fopenで同じパス名を指定すればファイルを開けます。
まず、ファイルを保存した時にそれがどのディレクトリに保存されたかわかっていますか?ご回答ありがとうございます.
すみません,どのディレクトリにあるかわからないです.
学校のサイトからファイルを保存するのですが,その時に保存先をどこにすればいいかがわからなくて...
ファイルを保存する際,エクスプローラー内のどこに保存するかを選択すると思うのですが,直接Ubuntu内のディレクトリに保存することができるのでしょうか...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フルパスから最後のディレクト...
-
どんなプログラムを書いても指...
-
新規作成ファイルパスが有効か...
-
ファイルやディレクトリの存在...
-
options +indexesで文字化け
-
windows.hがincludeされない
-
マイクラでPythonのプログラミ...
-
エクセルVBAで相対パスでファイ...
-
ファイルのパスを動的に取得
-
MATLABのsaveでファイル名を試...
-
絶対パスの絶対て英語で何でし...
-
「UNCパスはサポートされません...
-
ネットワーク上のコンピュータ...
-
ディレクトリ/ファイル リスト...
-
DLLのパス取得
-
ExcelVBAでカレントディレクト...
-
webアプリケーションでの画像フ...
-
バッファとは何ですか
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
マイクラでPythonのプログラミ...
-
windows.hがincludeされない
-
絶対パスの絶対て英語で何でし...
-
「UNCパスはサポートされません...
-
ExcelVBAでカレントディレクト...
-
C言語を用いたファイルの一括削...
-
ファイルやディレクトリの存在...
-
fopenで別ディレクトリにファイ...
-
GetPrivateProfileStringでini...
-
ファイルダイアログのカレント...
-
ネットワーク上のコンピュータ...
-
webアプリケーションでの画像フ...
-
セルに入力されたパスでフォル...
-
FTPでリモートのファイル一覧取得
-
CFileDialogを使用して、Pathを...
-
エクセルVBAで相対パスでファイ...
-
ExcelVBA サーバーの(共有フォ...
おすすめ情報