股票

C++字符串与数字交叉输入、数组动态分配

关于C++++中字符串、数字交叉输入,内存动态分配等。
分析都在程序里面注释了。

 
  1. #include <iostream>
  2. #include <string>
  3. struct car {
  4.         std::string make;
  5.         int year;
  6. };
  7. int main()
  8. {
  9.         using namespace std;
  10.         int number;
  11.         /* car * car_num; */
  12.         cout << “How many cars do you wish to catalog? “;
  13.         cin >> number;
  14.         cin.get();                                  /* 清除换行符 */
  15. /*按需求动态分配内存,没想到随便一试,竟然能这么用 */
  16.         car * car_num = new car [number];           /* number 是变量 */
  17.         int i;
  18.         for ( i = 0; i < number; i++ )
  19.     {
  20.                 /* car_num = new car; */
  21.                 cout << “Mark 1 “ << car_num << endl;
  22.                 cout << C++ar #” << i + 1 << “:\n”;
  23.                 cout << “Please enter the make: “;
  24.                 getline( cin, car_num->make );  /* 支持输入带空格的字符串 */
  25.                 cout << “Please enter the year made: “;
  26.                 /* cin.clear(); */
  27.                 cin >> car_num->year;
  28.                 cin.get();                      /* 清除换行符,不然下一轮循环getline()会因为换行符输入失败 */
  29.                 car_num++;
  30.                 cout << “Makr 2 “ << car_num << endl;
  31.     }
  32.         car_num -= i;
  33.         cout << “Mark Start “ << car_num << endl;
  34.         cout << “Here is your collection: “ << endl;
  35.         for ( i = 0; i < number; i++ )
  36.     {
  37.                 cout << car_num->year << ” “ << car_num->make << endl;
  38.                 car_num++;
  39.     }
  40.         car_num -= i;
  41.         /*删除指针数组,好吧,省了循环了,但是它怎么知道删掉几个? */
  42.         delete[] car_num;
  43.         return(0);
  44. }
打赏
原文链接:,转发请注明来源!

发表评论