有关于'\r'与’\n‘的来源,网上有相关的资料。我在fgets/gets/scanf函数读入字符串比较中也有提到。简而言之,在Linux环境下,换行是"\n";而在Windows下,换行是"\r\n"。在编写程序的时候,通常可以使用freopen函数将程序输入流重定向为文件。于是问题就来了,假如一个文件(test.txt)包含如下字符串:
“ustc\rchina\r\n”
注:其中\r和\n是转义字符,因此上一行共12个字符。
那么,在Linux和Windows环境下,下列程序会有怎样的结果呢?
#include <stdio.h>
int main()
{
freopen("test.txt", "r", stdin);
char ch, str[100];
int i = 0;
while ((ch = getchar()) != EOF)
str[i++] = ch;
str[i] = 0;
return 0;
}
#include <stdio.h>
int main()
{
freopen("test.txt", "r", stdin);
char ch, str[100