기본 콘텐츠로 건너뛰기

Xcodeのc++プロジェクトでofstreamでファイル作成ができない場合の処理

macOS SieraのXcode 9.2でc++でテキストファイルを生成するプログラムを作成しました。実行するとエラーもなく、問題はなさそうですが実際にファイルが作成されません。

-----------------------
#include <fstream>
using namespace std;
int main(void)
{
    ofstream myText("Hello.txt");
    myText << "Hello Text!" << endl;
    myText.close();
    return 0;
}
-----------------------

プロジェクトのソースファイルと同じパスを予想して確認してますがありません。
ファイルを検索してみても見つかりませんでした。

-----------------------
ofstream myText("Hello.txt");
-----------------------
部分を
-----------------------
ofstream myText("/Users/xxxxxx/Documents/Hello.txt");
-----------------------
の絶対パスにすると作成されました。
現在の作動パスを認識してないようでした。

stackoverflowで解決法を見つけたので整理します。
C++ Program in Xcode not outputting simple text file using outFile

XcodeプロジェクトのSchemeで作業ディレクトリの設定が必要でした。


1)実行ボタン(RUN)の右側のプロジェクト名部分をクリック>>Edit Scheme
2)Run>>Options>>Working Directory
  Use custom working directoryをチェックしてパス選択、設定

ちゃんと生成されました!

Xcode의 c++프로젝트에서 ofstream으로 파일작성이 안될때 처리

댓글

이 블로그의 인기 게시물

Unity(ユニティ)整理:04.左右移動 無限反復 Time.deltaTime, Time.time, Mathf.Sin()

スーパーマリオのような横スクロールケームによくでる地形があります。 空中に浮かんで左右無限反復するので ちゃんとタイミングを合わせて乗る必要がある地形です。 基本決定 ---------- 2D プロジェット作成 1.GameObject >>2D Object >> Sprite追加 2.Googleイメージ検索で”minecraft stone”キーワード、アイコンサイズのイメージを1つダウンロード 3.1で追加したSpriteに2でダウンロードしたイメージを設定 4.HierarchyのSpriteをドラックしてAssetsにドロップ(Prefabs作成)、名前を”Stone”に変更 5.HierarchyのSpriteを削除、Assetsの”Stone”をSceneにドラック&ドロップ 6.C# Scriptを”StoneMove”作成、”Stone”に追加 ---------- 具現1 ---------- float rightMax = 2.0f;    //左へ移動可能 (x)最大値 float leftMax = -2.0f;    //右へ移動可能 (x)最大値 float currentPosition;    //現在の位置(x)保存 float direction = 3.0f;    //移動速度+方向 void Start()  {       currentPosition = transform.position.x;  }  void Update()  {       currentPosition += Time.deltaTime * direction;       if (currentPosition >= rightMax)       {                direction *= -1;                currentPosition = rightMax;       }        //現在の位置(x)   右へ移動可能 (x)最大値より大きい、もしくは同じの場合       //移動速度+方向-1を掛けて反転、 現在の位置

백준 3053번 택시기하학 문제에서 배운것들-택시기하학, 원주율값(π: 파이) M_PI, double과 float의 차이

https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 www.acmicpc.net 단계별로 풀어보기 수학2의 관문 3053번 택시기하학과 마주했습니다. 일단 문제를 이해를 하지 못했습니다. 유클리드 기하학, 비유클리드 기하학인 택시 기하학.. 각각의 원의 넓이를 구하라고?!?! https://m.blog.naver.com/alwaysneoi/100172516753 [택시 기하학] 유클리드 기하학과 택시 기하학의 차이 지금까지 우리가 배운 것은 유클리드 기하학이다 우리가 초등학교를 시작으로 중학교를 거쳐 고등학교까지 ... blog.naver.com 유클리드 기하학에서의 원과 택시 기하학에서의 원이 다르다는것을 이해해야했습니다. 한점에서 같은 거리에 있는 점들의 집합이 원이고 유클리드 기하학에서는 중간의 방해물을 고려하지 않기 때문에 일반적으로 생각하는 구형의 원이됩니다만 택시 기하학에서는 중간의 방해물(건물)을 피해서 길로만 거리계산을 하면 다이아몬드형태의 원이됩니다. 원주율값(π: 파이) 은  반지름을 R이라고 했을때 유 클리드 기하학은 π*R*R 택시 기하학은 2*R*R 이 됩니다. 이제 계산만 하면 됩니다. "정답과의 오차는 0.0001까지 허용한다"라는 문구가 있습니다. 단영히  원주율값(π: 파이) 을 산수계산하듯이 3.14로 하면

담배 자판기의 성인인증은 타스포(タスポ,TASPO)로 합니다. 술 자판기는 무엇으로 할까요?, 내가 성인인증 시스템을 만든다면..

자판기 천국인 일본인만큼 술과 담배도 자판기로 살 수 있습니다. 담배를 끊기 전에는 필사의 맘으로 동네의 자판기 위치를 파악하고 있었는데, 지금은 슈퍼마켓에서 팔고 있는 것 말고는 판매하는곳을 못 본것 같습니다. 담배 자판기들이 모두 사라졌나 싶었습니다만 근처에서 바로 발견했습니다. 럭키스트라이크(ラッキーストライク, LUCKY STRIKE)가 종류가 많아졌네요. 럭키스트라이크 필터 킹( ラッキー・ストライク FK)을 좋아했었습니다. 끊기전 마지막으로 가지고 있던 담배도  럭키스트라이크 필터 킹( ラッキーストライク FK)입니다. 아직도 가지고 있습니다.  2008년 3월부터 미성년자의 흡연을 방지하기위해 담배 자판기에 성인인증시스템인 타스포(タスポ,TASPO)가 설치되었습니다.  신분증 복사본과 증명사진등을 제출하면 만들어주는 카드로 담배구입시 단말기에 카드를 터치해서 성인인증을 하는 방식입니다. 만들자마자 담배를 끊어서 별로 이용도 하지 못한체로 보관하고 있었는데 유효기간이 있습니다. 만들던 시점에서는 10년이었는데 2015년2월1일 기준으로 사용시마다 3년씩 자동 연장되는 방식으로 변경되었다고 합니다. taspo카드의 수명을 고려하여 유효기간을 10년으로 설정, 카드교환을 하려했으나, 카드자체의 수명에 의한 실패율의 증가는 없었고, 카드 교환을 불편을 없애고자 3년 자동연장으로 변경함 초기의 10년이 유지되면서 3년 자동갱신이 적용된다면 아직 유효하고, 변경일 기준으로 이용에 따른 자동 연장이라면 만료되었겠네요. 담배 자판기는  타스포(タスポ,TASPO)로 성인인증을 하는 것을 알고있었는데, 술 자판기도 성인인증을 하고 있다는 것을 이번에 알게 되었습니다.  바로 "운전면허증연령식별장치(運転免許証年齢識別装置)"에 의한 " 운전면허증"인증입니다. 免許証を抜くのは商品購入後に!! 免許証を抜くと「受付中」に戻り購入できなくなります。 1.受付中ランプの点灯を確認 2.運転免許証を