用getline()读取txt文档中数据时,回车对应的是‘\0’吗???

用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;
	}
		

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值