1. 程式人生 > 其它 >C++學習筆記(三)——關於cin.get() 順便求助各位大佬

C++學習筆記(三)——關於cin.get() 順便求助各位大佬

來自C++Primer程式設計練習6.11-1

編寫一個小程式,讀取鍵盤輸入,直到遇到@符號為止,並回顯輸入(數字除外),同時將大寫字元轉換為小寫,將小寫字元轉換為大寫。

#include<iostream>

using namespace std;

int main()

{
  char a[50];
  char ch;
  int i = 0;
  do
  {
    cin.get(ch);
    a[i] = ch;
    i++;
  }

  while(ch != '@');
  i = 0;
  int j = 97-65;
  while(a[i] != '@')
  {
    if(a[i] >= '0' && a[i] <= '9')
    {
      i++;
      continue;
    }
    else if(a[i] >= 'A' && a[i] <= 'Z')
    {
      a[i] = a[i]+j;
    }
    else if(a[i] >= 'a' && a[i] <= 'z')
    {
      a[i] = a[i]-j;
    }
    cout << a[i++];
  }
}

一開始的寫法是:

  char ch[50];
  int i = 0;
  do
  {
    cin.get(ch[i]);
    i++;
  }

  while(ch[i] != '@');

但執行報錯,到目前為止還沒有找到原因……先記下來等過一陣學得更多了再回頭看。

有大佬知道原因可以幫幫我嗎?