有關xcode編寫c++的問題


不才的程式很肉腳
之前在寫一個讀取檔案的小程式

===============================
#include<iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream in("abc.txt");
double i;

if(!in)
{
cout << "no such file";
return 0;
}

while (in>>i)
{
cout << i<<endl;
}
return 0;
}
===============================
txt內容為1.2 2.5 4.6 三個數值
xcode 3.2.1
compilers:gcc 4.0.1 gcc 4.2.1
===============================
想要把它讀入&顯示在螢幕上
xcode似乎有讀到檔案
但是沒有輸出內容



但這個小程式在windows上運作良好(gun gcc)
不才想請問前輩
是否有解

謝謝

PS. 由於需要將讀入的數值做其他的運算
所以需要宣告成double型態

2009-12-30 16:29 發佈
文章關鍵字 Xcode 問題 C++
會不會是檔案路徑不對?
理論上那個 abc.txt 應該放在你的目前工作目錄(用 pwd 命令檢查)下,
如果是用 Xcode IDE 編輯,執行檔的所在目錄應該不是 Project 的預設 pwd。
你先用最基本讀檔->輸出檢查看看。

// ifstream::is_open
#include <iostream>
#include <fstream>
using namespace std;

int main () {
ifstream infile;
infile.open ("abc.txt");
if (infile.is_open())
{
while (infile.good())
cout << (char) infile.get();
infile.close();
}
else
{
cout << "Error opening file";
}
return 0;
}

把 abc.txt 放在執行檔目錄下,然後在 Terminal CD 到執行檔目錄,
直接在 Terminal 下命令啟動執行檔再試試看。
ulyssesric wrote:
會不會是檔案路徑不對...(恕刪)


他的程式跟路徑無關。把 double 改成 char 就會顯示東西(雖然格式會爆掉...)。

直接讀入成 char 在轉成 double 不行嗎?(我的 C++ 可能比他還肉腳...)

moshi @ irc.osx86.hu - #hackint0sh / #SnowLeopard
我想路徑應該沒問題

如Neo.Mac所說的
改成char output會出現
但是輸入的東西
會變成9個char...
下面是我亂寫的,基本上可以達到你說的目的,但是有個小問題,就是 123.txt 必須是下面這個格式才行:

空行
1.2
2.5
4.6



執行結果為:

1.2
2.5
4.6
8.3
moshi @ irc.osx86.hu - #hackint0sh / #SnowLeopard
Neo.Mac wrote:
下面是我亂寫的,基本...(恕刪)




謝謝
我試試看
===========================
喔喔
成功了


我發現要打這三行才不會出錯@@
#define _GLIBCXX_FULLY_DYNAMIC_STRING 1
#undef _GLIBCXX_DEBUG
#undef _GLIBCXX_DEBUG_PEDANTIC

可否請教這三行是什麼意思?
為什麼要define這個呢?_GLIBCXX_FULLY_DYNAMIC_STRING
royalknight wrote:
喔好謝謝我試試看==...(恕刪)


要加那三行是因為 Xcode 3.2.1 在 Debug x86_64 binary 時有問題,舊版的不須要那三行。

至於為甚麼,這是某些網路上的高手們討論出來的解決方法,我自己不寫 C++ 所以不清楚。

大致上應該是,預設的 gcc 4.2 Compiler 跟 Std C++ Lib Debug Mode 不相容。所以解決方式有兩個,第一個是改用 gcc 4.0 來編譯,或是移除 Debug 設定裡的 Preprocessor Macros 和 _GLIBCXX_DEBUG=1 與 _GLIBCXX_DEBUG_PEDANTIC=1 這兩行。

加上那三行跟移除那三項是等價的,只是移除那三項對每個之後的程式都有作用,而不必每個檔都加。

請看這邊:

http://osdir.com/ml/xcode-users/2009-09/msg00526.html

和這邊

http://discussions.apple.com/thread.jspa?threadID=2164388&start=15&tstart=0

希望對你有幫助。
moshi @ irc.osx86.hu - #hackint0sh / #SnowLeopard
Neo.Mac wrote:
要加那三行是因為 X...(恕刪)



謝啦
回去研究
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?