程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-C++,如何將未知長度的string輸入數組

c++-C++,如何將未知長度的string輸入數組

編輯:編程解疑
C++,如何將未知長度的string輸入數組

如代碼,我發現程序在運行時會跳過cin.get,這是怎麼回事啊?另外,關於將未知長度的字符串輸入數組,還有什麼好辦法嗎?

 int main()
{
    int time;
    scanf("%d", &time);
    int count=0;
    while(count < time)
    {
        string str;
        char temp;
        int i;

        while((temp=cin.get())!='\n')
        {
                str +=temp;
        }
        length =str.length();

        char* preorder = new char[length];
        char* inorder = new char[length];

        for(i = 0;i<length;i++)
        {
            preorder[i]=str[i];
        }

        for(i=0;i<length;i++)
        {
            scanf("%c", inorder[i]);
        }

        sort(preorder, inorder, length);

        count++;
        delete preorder;
        delete inorder;
    }
    return 0;
}

最佳回答:


scanf("%d", &time);輸入完後,輸入緩沖區還會遺留下一個回車符
然後執行while((temp=cin.get())!='\n'),會直接讀取遺留的回車,temp就等於'\n'了,所以樓主感覺跳過了這句
可以在scanf("%d", &time);後加上fflush(stdin);用來清空輸入緩沖區

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved