Tag: 换行符

来自stdin的read()不会忽略换行符

我使用以下条件语句来读取标准输入。 if ((n = read(0,buf,sizeof(buf))) != 0) 当从标准输入输入数据时,通常用户在完成时按下输入。 但read()将’\ n’视为输入,在这种情况下n = 1且条件不计算为false。 当用户在标准输入上按Enter(不输入任何内容)而不检查buf的内容时,是否有办法使条件计算为false。 除了read()之外还有其他function可以用于此目的吗? 就此而言,当输入来自标准输入(stdin)时,读取什么方式可以确定输入结束?

尝试validation新行删除后,新行删除无效

我正在制作一个代码来解析一些输入数据并以特殊格式将其写入文件。 我正在从每个字符串标记中删除换行符,如下所示: token[strlen(token)-2] =’\0′ 它是-2因为最后一个元素是\0 。 这很有用。 但是,输入数据的最后一个元素没有换行符,因此使用它最终会从最后一个输入集中删除倒数第二个字符。 original input: 0.38 after running it through the removal: 0.3 显而易见的解决方案是在删除之前检查换行是否存在。 我这样做: if(token[strlen(token)-2] ==’\n’) token[strlen(token)-2] =’\0′; 但是,添加if子句后,不再删除换行符! 我究竟做错了什么? 来自整个代码的Snippit: while((token = strsep(&line, “,”)) != NULL){ if(x++ == 1){ fwrite(” \n”, 11, 1, fw); fwrite(” “, 14, 1, fw); fwrite(token, strlen(token), 1, fw); fwrite(“\n”, 8, 1, fw); } […]