我想从fgets输出修剪换行符。
while(fgets(buff,1024,fp) ){
printf("start%send",buff );
如果文件中有“C is cool”行。然后打印上面的代码。
startC is cool
end
但我希望它像
一样打印 startC is coolend
如何做到
答案 0 :(得分:7)
清洁方法
#include <string.h>
//...
buff [ strcspn(buff, "\r\n") ] = 0;
这可以安全地用于任何种类的行结尾,即使没有,也就是说,即使字符串是空的。
答案 1 :(得分:2)
您可以将最后一个字符设置为'\0'
(空终止符)。这不是一个好方法,因为该文件可能并不总是有换行符。
buff[strlen(buff) - 1] = '\0';
或循环遍历char数组末尾将'\n'
替换为'\0'
int i;
for(i = 0; i < strlen(buff); i++)
{
if(buff[i] == '\n')
{
buff[i] = '\0';
break;
}
}
或删除最后'\n'
的{{1}}:
strcspn()