问题太长。这是解决方案。
解决方法:
当试图“仅”获取没有任何特殊字符(例如\n 或\r)的行时 然后循环遍历字符串(char* 类型)直到您点击\r 或\n 以便它在 Windows 和其他 Linux 机器之间略微交叉兼容。
可能的代码:
for (i = displacement; i < strlen(line) && line[i] != '\r' && line[i] != '\n'; i++) {
newString[i - displacement] = line[i];
}
最佳答案
从文件中读取时,fgets 读取到\n 行终止符(它包括在内)。
在 Windows 下,从文本文件中读取的一行以\r\n 结尾。
在 Unix 下,从文本文件中读取的一行仅以\n 结尾。
因此在 Windows 下,您希望 fgets 读取的字符串长 1 个字节。
关于c - Windows 和 Linux 从文件输入的字符串长度不同,但标准输入 strcmp 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352942/