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

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

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

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1341閲覧

【C++】 一つ上のディレクトリのテキストファイルを読み書きしたい

yukkuri111

総合スコア1

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2023/01/10 19:32

編集2023/01/10 23:17

前提

C++を勉強中でテキストファイルを読み書きするものを作りました。
そこで相対パスを使えばディレクトリが一つ上にあっても読み書きできるのではないかと思い
それを実行しましたが、正確に読み取ることができませんでした。

実現したいこと

文字化けしているので正確な読み取りが行いたい。

発生している問題・エラーメッセージ

文字化け、出力ファイルに何も出力されないなど

該当のソースコード

ReadWrite.cpp

#include <string> #include <fstream> #include <iostream> using namespace std; int main() { ifstream fin("././Read.txt"); char str[16]; fin >> str; cout << str; fin.close(); ofstream fout("././Write.txt"); fout << str; cout << str; fout.close(); return 0; }

Read.txt
ラーメン
Write.txt

試したこと

テキストファイルの文字コードをANSI(Shift-JIS)に変更
type Read.txtとするとラーメンと表示された

補足情報(FW/ツールのバージョンなど)

Windows11
Visual Studio2022

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

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

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

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

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

setoppu

2023/01/10 21:10

char型変数一個は"ラーメン"を収めるのに必要などんぶりサイズですか? 鍋で作ったラーメンが小さじに全部入りますかね?
yukkuri111

2023/01/10 23:06

コメントありがとうございます。とりあえずchar str[16]としてどんぶりを用意しました。
yukkuri111

2023/01/10 23:19

ご指摘通りやってみたのですが今度は何も出力されませんでした…
thkana

2023/01/10 23:49 編集

> 文字化け、出力ファイルに何も出力されないなど まとめてしまわないで、起こった事実をそのまま観察して、質問にはそのまま記載してみてください。 > type Read.txtとするとラーメンと表示された なぜ試行が type ././Read.txt ではないのですか? そのときRead.txtはカレントディレクトリにはなく、そのひとつ親のディレクトリにあったのですか?
thkana

2023/01/10 23:55

修正履歴を見ると、正しい修正と間違った修正(?)を同時にぶっこんだ結果としてプログラムは結局期待した動きをしない...で、何が起こっているのかをさらに見失うことになっているような。 まぁ、ファイルのオープン結果をきちんとチェックしていないことが一番罪が重いでしょうか。
dodox86

2023/01/11 00:45 編集

[既に回答をいただいていたのでコメント削除]
yukkuri111

2023/01/11 06:07

コメントありがとうございます typr Read.txtを実行した際には一つ上のディレクトリに移動して実行していました まぎわらしくて申し訳ございませんでした。
guest

回答1

0

ベストアンサー

相対パスを使えばディレクトリが一つ上にあっても読み書きできる

./ カレントディレクトリ
././ カレントディレクトリの中のカレントディレクトリ=カレントディレクトリ

../ カレントディレクトリの1つ上のディレクトリ

"././Read.txt"

"../Read.txt"

finが正しいファイルを開けているかエラーチェックを入れましょう。

投稿2023/01/10 23:38

kopio

総合スコア487

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

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

yukkuri111

2023/01/11 06:08

なんとか動きました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問