返回列表 發帖
回復 20# Timmm

不過這兩種我們老師上課也都沒有提到...
不知能否傳授一下..。
網路上不知道有哪邊可以看呢..
雖然有找過但是好像都是舊格式的語法
寫上去肯定會被發現
1

評分人數

    • 尤佳理: 格式什麼的沒差啦...能用加會用就好... ...GJ + 1

TOP

可以用兩種變數或string全部讀完再轉回來
要用string的話上方加入#include <string>

然後用if/else分別處理
EX:

#include<iostream>
#include<fstream>
#include <string>

using namespace std;
const int xx = 100;
void xo(string soce[],int& cood);

int main()
{
        char ans;
        int cood;
        string soce[xx];

        do
        {
                cout << "歡迎使用統計軟體"<<endl;
                xo( soce, cood);

                cout << "重複查詢?:";
                cin >> ans;
        }
        while(ans =='y'|| ans == 'Y');

        return 0;
}

void xo(string 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)
        {
                if(i % 3 == 0)
                {
                }
                else if(i%3 == 1)
                {
                }
                else
                {
                        sum += atoi(soce[i].c_str());//轉回INT
                }
                //列出讀到的東西
                cout << soce[i] << endl;
                i++;
        }
        //輸出第三項總合
        cout << sum << endl;

        in.close();
        out.close();
}
1

評分人數

TOP

第一個方法不難
只要另外宣告兩個陣列就好
這樣總共三個陣列
(因為txt每一行看起來是3個不一樣的東西,分開存比較好做後續處理)

while(in >> soce[i] >> soce2[i] >> soce3[i] && i< xx){
    cout << soce[i] << " " << soce2[i] << " " << soce3[i] << endl;
    i++;
}
1

評分人數

TOP

感謝 兩位大大熱情的指導 ,小弟有了信心再去拚一次了。(雖然會不會做得出來也不知道)
但還是非常感謝大大

TOP

提醒一下
while( in >> soce[i] >> soce2[i] >> soce3[i] && i < xx )
當 i 到 100 的時候,in 的動作可能會出錯 (100已經超過陣列上限)

所以最好把判斷順序交換一下
while( i < xx && in >> soce[i] >> soce2[i] >> soce3[i] )
這樣當 i 到 100 的時候,in 的動作不會執行 (當 && 前面的判斷已經確定是 false 的時候,&& 後面的判斷會直接被程式略過不做)
1

評分人數

    • 過客: 這個倒是沒想到,感謝大大了。 ...GJ + 1

TOP

無聊之餘來複習一下...
code

TOP

返回列表