作者:绝恋love2502860291 | 来源:互联网 | 2021-12-12 17:18
有一个程序只需对输入的一行字符一个个进行独立判断,C的话用getchar()就好了,但是用C++的时候发现CIN似乎不接受回车符……搜索解决方法的时候很多人都建议将getline,然后处理数组或者定义一个流什么的,但是这样一行可能很长,要占用很多空间。有没有别的办法?
今天在编写99乘法在线小游戏(看过我的 linux下c实现的数据库备份(第四版)应该知道我在那里提过^.^)的时候遇到读取文件的信息遇到回车换行符的烦恼。
比如我文件里面有如下信息:
我希望读取到name=qizexi这些有效字符而已,不希望\r\n也加入其中,因为那样会影响我的判断。
解决的方式是在遇到\r获取\n的时候,替换为\0.
#include
#include
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;
}