返回列表 發帖
0那個是隨機亂碼(有聽人說過)
沒有看到的是txt內的內容。

TOP

囧 不是亂碼
那個就是 cood 的數值


123.txt 已經是真實的檔案
內容是 "5 10 15 20 25 30",共6個數字
所以圖片印出來的是 6,這是依照你的程式邏輯跑出來的結果

TOP

那如果說我要把裡面的5 10 15 20...印出來呢?
我一直以為那是把裡面的值傳到cood

TOP

[i=s] 本帖最後由 尤佳理 於 2013-1-5 15:57 編輯 [/i]

你的值是存在soce裡面
稍微改了一下
其實cood沒有用道說


#include<iostream>
#include<fstream>
using namespace std;
const int xx = 100;
void xo(int soce[],int& cood);

int main()
{
        char ans;
        int soce[xx],cood;
       
        do
        {
                cout << "歡迎使用統計軟體"<<endl;
                xo( soce, cood);

                cout << "重複查詢?:";
                cin >> ans;
        }

        while(ans =='y'|| ans == 'Y');
        return 0;
}

void xo(int soce[],int& cood)
{
        int i=0;
        char name[32],name1[32] ;
        double sum = 0;
        ifstream in;
        ofstream out;
        cout <<"請輸入欲統計的成績檔案名稱(1-31字元):";
        cin >> name;
        in.open(name);
        cout <<"請輸入欲儲存檔案名稱(1-31字元):";
        cin >> name1;
        out.open(name1);
        while(in >> soce[i]&& i< xx)
        {
                sum += soce[i];
                i++;
        }
        cout << sum << endl;
        in.close();
        out.close();
}


-------
恩...這個沒有把值寫到TXT檔裡面
函數忘了舞需要找一下...

剛剛才看到後面變斜體...
1

評分人數

    • 過客: cood也會用到只是現在的麻煩是文字出不來.. ...GJ + 1

TOP

本帖最後由 Timmm 於 2013-1-9 16:52 編輯

你的程式碼已經寫的很清楚
in 會把檔案的內容全部丟進 soce[]
所以要輸出的是 soce 的內容

然後 xo 裡面的 while 邏輯要修正一下
你現在的寫法跟下面是一樣的結果
while(in >> soce&& i< xx)
{
    i++;
}
cood = i;
cout << cood <<" ";
sum += cood;
cood++;
in.close();
out.close();

你需要把輸出語法搬到 while 大括號裡面

TOP

本帖最後由 Timmm 於 2013-1-5 15:59 編輯

回復 14# 尤佳理

因為樓主說這個程式只寫到一半
所以我以為 cood 是拿來檢查參數數量的
至於之後程式有什麼新增問題就再討論~

一直忘記說
while 的判斷也有盲點
1

評分人數

    • 尤佳理: 我想說只要看總和所以就把那幹掉了(炸) ...GJ + 1

TOP

本帖最後由 過客 於 2013-1-5 16:13 編輯


這是用soce出來的值...整個怪了...
我的txt是
981552  M  48
981554  M  31
981559  F  71
991563  M  67
991571  F  85
991577  F  13
991562  M  65
1001563  F  35
1001568  F  61
1001570  F  42
1001573  M  93
1001578  F  56
1011581  M  70
1011587  M  68
1011988  M  99
1011980  M  33
1011983  F  61
1011988  M  57
1011991  M  79
1011998  F  66

TOP

我不知道 VS 2008 會不會進行型別檢查
因為這個 txt 在輸入第一行的 M 就會掛掉了... 你的 soce 型別是 int,但是 M 是 char

TOP

所以我要宣告2種不同變數嗎...
還是用陣列可以達成

TOP

回復 19# 過客

1. 用兩種變數
2. 用 string 變數,加總的時候再轉回 int

TOP

返回列表