C++读取到回车换行符问题处理
投稿:hebedich
有一个程序只需对输入的一行字符一个个进行独立判断,C的话用getchar()就好了,但是用C++的时候发现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; }