用getline()读取txt文档中数据时,回车对应的是‘\0’吗???
今天写的读取txt文档中数据的程序,每行以回车结束,但程序判别的时候无论用‘\n’、’\r’、’\n\r’、’\r’、’\n’,都无法识别回车符,但是无意中发现用‘\0’竟然可以识别,不知道怎么回事。。。
先记录一下,若是有路过的大佬有高见跪求帮我解答一下。。。代码附在下面了。
char filename[40] = "F:\\code\\C++\\距离矩阵.txt";
ifstream file;
file.open(filename, ios::in);
if (!file.is_open())
return;
string strLine;
int i = 0, j = 0;
char str[4];
while (getline(file, strLine) && i < N)
{
for (int l = 0, r = 0; l <= strLine.length() && j < N; l++)
{
if (i == 1)
int flag = 0;
if (strLine[l] != ' '&&strLine[l] != '\0')//很奇怪,这里的'\0'竟然代表回车
{
str[r] = strLine[l];
r++;
}
else
{
if (r != 0)
{
for (int k = r; k < 4; k++)
str[k] = '\0';
d[i][j] = atoi(str);
j++;
memset(str, '\0', sizeof(str));
r = 0;
}
}
}
i++;
j = 0;
}
file.close();
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
cout << d[i][j] << " ";
cout << endl;
}
}