
学校の授業で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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Windows 10 拡張子.tibxの開き方 1 2023/06/30 13:01
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- C言語・C++・C# Visual studio2022についての質問です。 現在プログラムを作っているのですが、添付した 1 2023/01/16 19:37
- 法人税 電子帳簿保存法について 1 2022/04/07 11:17
- PDF ワードで作った文書のPDF化 5 2023/04/10 16:56
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
フルパスから最後のディレクト...
-
絶対パスの絶対て英語で何でし...
-
ExcelVBA サーバーの(共有フォ...
-
fopenで別ディレクトリにファイ...
-
webアプリケーションでの画像フ...
-
「UNCパスはサポートされません...
-
圧縮(Zip)について
-
FileDialogのデフォルトのディ...
-
ネットワーク上のコンピュータ...
-
ファイルやディレクトリの存在...
-
GetPrivateProfileStringでini...
-
ファイルダイアログのカレント...
-
ソフトウェアからオープンされ...
-
C言語を用いたファイルの一括削...
-
ShellExecute、エクスプローラ...
-
VBでフォルダ単位のFTP
-
フォルダの物が増えたら、自動...
-
C#でカレントディレクトリの取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
「UNCパスはサポートされません...
-
FTPでputすると空ファイルが出...
-
絶対パスの絶対て英語で何でし...
-
fopenで別ディレクトリにファイ...
-
ExcelVBAでカレントディレクト...
-
ファイルやディレクトリの存在...
-
windows.hがincludeされない
-
セルに入力されたパスでフォル...
-
ネットワーク上のコンピュータ...
-
Ubuntu テキストファイルをどこ...
-
C言語を用いたファイルの一括削...
-
webアプリケーションでの画像フ...
-
新規作成ファイルパスが有効か...
-
ファイルダイアログのカレント...
-
ExcelVBA サーバーの(共有フォ...
-
GetPrivateProfileStringでini...
-
エクセルVBAで相対パスでファイ...
-
マイクラでPythonのプログラミ...
おすすめ情報