C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++读取到回车换行符问题处理

C++读取到回车换行符问题处理

投稿:hebedich

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