1. 程式人生 > >讀入一行字元(包括空格)做為一個字串的兩個方法 ,C/C++

讀入一行字元(包括空格)做為一個字串的兩個方法 ,C/C++

        今天參加華為線上測試(OJ),前兩道題都做對了,最後一道我算出了結果,卻不知道如何輸出來,==

        題目大概是要求輸入一行字元(字元為數字、負號、小數點、空格組成)作為一個字串,在字串中提取整數單元,每兩個整數單元用空格隔開了,整數單元包含負數。輸出所有整數單元的和,字元總個數小於100.

       我用了while(scanf("%c",c) != -1)來讀入,雖然後面的提取數求和完成了,但是由於這個讀入迴圈是死迴圈導致不能跳出輸出,由於當時時間也要到了,就沒做出來。回來和朱耀討論和查資料得到了這兩個方法。

1..利用getchar()函式

char c;

while((c=getchar()) != '\n') //每次讀入一個字元,直到行末。

   ...............

   }

2。利用cin.getline()函式

char s[100];

cin.getline(s,100,'\n');  //讀入一整行存入char陣列,最大長度為100.