前提
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
char型変数一個は"ラーメン"を収めるのに必要などんぶりサイズですか?
鍋で作ったラーメンが小さじに全部入りますかね?
コメントありがとうございます。とりあえずchar str[16]としてどんぶりを用意しました。
ご指摘通りやってみたのですが今度は何も出力されませんでした…
> 文字化け、出力ファイルに何も出力されないなど
まとめてしまわないで、起こった事実をそのまま観察して、質問にはそのまま記載してみてください。
> type Read.txtとするとラーメンと表示された
なぜ試行が
type ././Read.txt
ではないのですか?
そのときRead.txtはカレントディレクトリにはなく、そのひとつ親のディレクトリにあったのですか?
修正履歴を見ると、正しい修正と間違った修正(?)を同時にぶっこんだ結果としてプログラムは結局期待した動きをしない...で、何が起こっているのかをさらに見失うことになっているような。
まぁ、ファイルのオープン結果をきちんとチェックしていないことが一番罪が重いでしょうか。
[既に回答をいただいていたのでコメント削除]
コメントありがとうございます
typr Read.txtを実行した際には一つ上のディレクトリに移動して実行していました
まぎわらしくて申し訳ございませんでした。

回答1件
あなたの回答
tips
プレビュー