C++讀取到回車換行符問題處理
更新時間:2015年08月09日 15:42:10 投稿:hebedich
有一個程序只需對輸入的一行字符一個個進行獨立判斷,C的話用getchar()就好了,但是用C++的時候發(fā)現CIN似乎不接受回車符……搜索解決方法的時候很多人都建議將getline,然后處理數組或者定義一個流什么的,但是這樣一行可能很長,要占用很多空間。有沒有別的辦法?
今天在編寫99乘法在線小游戲(看過我的 linux下c實現的數據庫備份(第四版)應該知道我在那里提過^.^)的時候遇到讀取文件的信息遇到回車換行符的煩惱。
比如我文件里面有如下信息:
name=qizexi sex=man
我希望讀取到name=qizexi這些有效字符而已,不希望\r\n也加入其中,因為那樣會影響我的判斷。
解決的方式是在遇到\r獲取\n的時候,替換為\0.
解決的方式是在遇到\r獲取\n的時候,替換為\0.
#include<string.h> #include<stdio.h> int main(int argc, char *argv[]) { char str[128]; while (fgets(str, 127, stdin)) { char *tmp = NULL; //去掉換行符 if (tmp = strstr(str, "\n")) *tmp = '\0'; //去掉回車符 if (tmp = strstr(str, "\r")) *tmp = '\0'; printf("---%s---\n", str); } return 0; }
您可能感興趣的文章: