天天看點

c++ primer 第五版 閱讀筆記五程式設計練習:

程式設計練習:

隻言片語:

之前那篇部落格内容寫的有點多,避免大家看起來太心累,于是我把第四章的程式設計練習,單獨整理一篇出來,加油,我們都是最胖的~ya。每當我真的感覺自己敲不下去了的時候,我就會提醒自己為什麼開始,想怎麼結束,便有了力量,願我們在遠走越順,越走越遠。

c++ primer 第五版 閱讀筆記五程式設計練習:
c++ primer 第五版 閱讀筆記五程式設計練習:

回顧之前的一個知識點:

對于數組而言:我們在使用 cin 時,隻能讀到一個詞,于是我們使用 getline(arr1,arr1_size) 來擷取正行輸入内容,同時其會将 cin 隊列中獲得的字元串的最後的一個 換行鍵 丢棄,這也使得整個輸入隊列是幹淨的,與此相對就有 get(arr1,arr1_size),其輸入也有兩個參數,get() 函數會将換行鍵儲存下來,雖然也可以整行輸入,但是取走字元串後,卻留下了換行鍵,使得下次讀取,無法正常讀到字元串,解決方法有兩種,一種是使用一個get()來接收一個換行字元,還有一種方案是通過clear(),來清理輸入隊列。

對于string 類的對象而言:也如此,可以使用 getline(cin,str1); //其中cin不是字元串符号;     get()貌似沒法用鴨,隻能先标記下,等學string的時候具體再看一下,(✿◡‿◡)

#include <iostream>
#include <string>

using namespace std;

int main()
{
    char fname[30];
 //   string str;
    char lname[30];
    char grade[5];
    char age[3];

    cout<<"What is your first name? "<<endl;
    cin.getline(fname,30);
    cin.clear();
//    getline(cin,str);
    cout<<"What is your last name?"<<endl;
    cin.getline(lname,30);
    cin.clear();

    cout<<"What letter grade do you deserve?"<<endl;
    cin.getline(grade,5);
    cin.clear();

    cout<<"What is your age?"<<endl;
    cin.getline(age,3);
    cin.clear();

    cout<<"Name:"<<lname<<"."<<fname<<endl;
    cout<<"Grade:"<<grade<<endl;
    cout<<"Age:"<<age<<endl;

    return 0;
}
           

如何輸入确定長度的字元串呢?而且使得其不會影響到之後的輸入?待解決。。。我的思路是輸入後先存起來,然後将隻将第一個值指派出去,不知道有沒有更好的方法?

c++ primer 第五版 閱讀筆記五程式設計練習:
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string name;
    string dessert;

    cout<<"Enter your name: \n";
    getline(cin,name);
    cout<<"Enter your favourite dessert: \n";
    getline(cin,dessert);

    cout<<"I have some delicious "<<dessert;
    cout<<" for you. "<<name<<".\n";

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char fname[25];
    char lname[15];

    cout<<"Enter your first name: ";
    cin.getline(fname,25);
    cout<<"Enter your last name: ";
    cin.getline(lname,15);

    cout<<"Here's the information in a single string: ";
    strcat(lname,",");  //後面必須是一個字元串常量,切記使用字元
    strcat(lname,fname);
    cout<<lname;

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>
#include <cstring>
#include <string>

using namespace std;

int main()
{
    string fname;
    string lname;

    cout<<"Enter your first name: ";
    getline(cin,fname);
    cout<<"Enter your last name: ";
    getline(cin,lname);

    cout<<"Here's the information in a single string: ";
    lname += ",";  //後面必須是一個字元串常量,切記使用字元
    lname += fname;
    cout<<lname;

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>

using namespace std;

struct CandyBar{
    string brand;
    float weight;
    int kolali;
};

int main()
{
    CandyBar snack = {"Mocha Munch",2.3,350};

    cout<<snack.brand<<" "<<snack.weight<<" "<<snack.kolali<<endl;

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>

using namespace std;

struct CandyBar{
    string brand;
    float weight;
    int kolali;
};

int main()
{
    const int num = 3;
    CandyBar snack[num] = {"Mocha Munch",2.3,350};
    snack[1] = snack[0];
    snack[2] = snack[0];

    for(int i = 0;i < num;i++)
    {
        cout<<snack[i].brand<<" "<<snack[i].weight<<" "<<snack[i].kolali<<endl;
    }

    return 0;
}
           

問題:如何 同時 初始化  結構數組? 

答:和數組的初始化差不多。如果是指針的話,是無法在定義時被初始化的。

c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>

using namespace std;

struct PizzaInf{
    string name;
    float zhijing;
    float weight;
};

int main()
{
    const int num = 3;
    PizzaInf pizza[num] = {"Mocha Munch",2.3,350};
    pizza[1] = pizza[0];
    pizza[2] = pizza[0];

    for(int i = 0;i < num;i++)
    {
        cout<<pizza[i].name<<" "<<pizza[i].zhijing<<" "<<pizza[i].weight<<endl;
    }

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>

using namespace std;

struct PizzaInf{
    string name;
    float zhijing;
    float weight;
};

int main()
{
//    const int num = 3;
    PizzaInf* pizza = new PizzaInf;
    cin>>pizza->zhijing>>pizza->name>>pizza->weight;

    cout<<pizza->name<<" "<<pizza->zhijing<<" "<<pizza->weight<<endl;

    return 0;
}
           
c++ primer 第五版 閱讀筆記五程式設計練習:
#include <iostream>

using namespace std;

struct CandyBar{
    string brand;
    float weight;
    int kolali;
};

int main()
{
    const int num = 3;
    CandyBar* snack = new CandyBar [num];
    snack[0] = {"1",2.3,5};
    snack[1] = snack[0];
    snack[2] = snack[0];

    for(int i = 0;i < num;i++)
    {
        cout<<snack[i].brand<<" "<<snack[i].weight<<" "<<snack[i].kolali<<endl;
    }

    return 0;
}

           
上一篇: 箭頭的重載

繼續閱讀