从Windows vs Linux输入的不同字符串长度,但stdin strcmp不起作用

时间:2013-10-14 03:07:49

标签: c linux windows strlen calloc

问题太长了。这是解决方案。

解决方案:

当试图获得'just'时没有任何特殊字符的行,例如\ n或\ r \ n 然后循环遍历字符串(char *类型),直到你点击\ r或\ n,以便它在Windows和其他Linux机器之间略微交叉兼容。

可能的代码:

for (i = displacement; i < strlen(line) && line[i] != '\r' && line[i] != '\n'; i++) {
    newString[i - displacement] = line[i];
}

1 个答案:

答案 0 :(得分:1)

从文件读取时,fgets会读取\ n行终止符(包括它)。

在Windows下,从文本文件读取的行以\ r \ n。

结尾

在Unix下,从文本文件中读取的行只以\ n。

结尾

因此,在Windows下,您希望fgets读取的字符串长1个字节。