2017-05-01 63 views
-1

我試圖讓我的代碼工作,實際上它的工作原理,但不是那麼好。 「輸入」出現後代碼停止。我想讓我的代碼工作,直到用戶輸入文件的結尾。C++讀輸入,直到行字符數組結束

#include<iostream> 
using namespace std; 

int main(){ 
    char input[2000]; 


    cin.getline(input, sizeof(input)); 

    int lol = strlen(input); 
    int boing = 0; 
    for (int p = 0; p < lol; p++) 
    { 

     if (input[p] == '\"') 
     { 
      boing++; 
      if (boing % 2 == 1) 
      { 
       cout << '\`'<<'\`'; 
      } 
      if (boing % 2 == 0) 
      { 
       cout << '\''<<'\''; 
      } 
     } 
     else 
      cout << input[p]; 
    } 

    system("pause"); 
} 

如果我們輸入輸入這些文字

是「支」我了嚴格的「記得。」 歌曲,但首席具有火腿寡婦起伏。天才或虛榮心不能。 「」'```大做嘗試goi"''NG‘關於水推遲通過。‘靜音’兒子的人,她希望母親。 不信任津貼做知識的渴望保證補充。 我們‘’‘’縮減偏好’徹底如果。 「快樂處理痛苦」;`392查看「她的時間。帶領年輕的同性戀會現在「狀態。

我的輸出成爲

被分支在''my up strictly記得了。 ''

,但它應該是

是支''my up strictly請記住。''歌曲可是首領有 ham寡婦起伏。天才或者虛榮cann OT。 ''```大試做 goi'''ng'' about water defer by.沉默''她的兒子男人 母親。不信任津貼做知識急切保證 補充。我們''''減少偏好thoroughly if. ''Joy deal pain ';`392view她的時間太多了。 「現在,年輕的同性戀者會說。」

+0

你是不是通過給變量「搞笑」的名字做自己一個忙。 – Aziuth

回答

2

你需要用某種形式的循環包裝你的getline。現在你得到1行,然後操縱input然後退出。現在你正在從用戶那裏拉它,所以你需要尋找一個終結者。

1

getline將接受輸入,直到按下「enter」按鈕。 您的代碼在我的機器上運行良好。 只需添加string.h頭文件是這樣的:

#include<string.h>

這是strlen功能。

2

這個代碼,你就需要兩個頭文件

#include <string.h> 
#include <stdlib.h> 

完整的代碼將

#include<iostream> 
#include <string.h> 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    char input[2000]; 


    cin.getline(input, sizeof(input)); 

    int lol = strlen(input); 
    int boing = 0; 
    for (int p = 0; p < lol; p++) 
    { 

     if (input[p] == '\"') 
     { 
      boing++; 
      if (boing % 2 == 1) 
      { 
       cout << '\`'<<'\`'; 
      } 
      if (boing % 2 == 0) 
      { 
       cout << '\''<<'\''; 
      } 
     } 
     else 
     cout << input[p]; 
    } 

    cout<<endl; //this line is for making ur code look nice 

    system("pause"); 
} 

但我個人建議你用C++字符串類字符串處理 簡單而且非常有用

使用string類代碼將是

#include<iostream> 
#include <string> 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 

    string input; 

    getline(cin,input); 

    int lol = input.size(); 

    int boing = 0; 
    for (int p = 0; p < lol; p++) 
    { 

     if (input[p] == '\"') 
     { 
      boing++; 
      if (boing % 2 == 1) 
      { 
      cout << '\`'<<'\`'; 
      } 
      if (boing % 2 == 0) 
      { 
       cout << '\''<<'\''; 
      } 
     } 
     else 
      cout << input[p]; 
    } 

    cout<<endl; 
    system("pause"); 

    return 0; 

} 

編碼快樂