这是我第一次用 c++ (Visual studio 2010) 编写代码。我有我想要实现的逻辑,但我无法将其写入代码。查看了许多样品,但没有发现任何结果。
基本上我有一个制表符分隔的 txt 文件,我想读取它并将数据放入字符串、字符串数组中。
问题是使用内置的:
ifstream in;
in.open("someData.txt");
while(!in.eof())//the text from the file is stored in different variables
{
in>>inputData[0];
in>>inputData[1];
}
将数据放入字符串数组中,但按空格分割行,即使数据行中出现空格,也会将其分成两列,这就是问题所在。
如何使用 C++ 正确地逐行读取数据并将其读取到列中?
如果您的列数据可能包含空格,最好使用"
围绕字符串或添加'\t'
作为分隔符。
您可以按如下所示重新排序要使用的代码,以确保您最终不会读取空行。
ifstream in("someData.txt");
while(in>>inputData[0])
{
in>>inputData[1];
}
或者如果任何行中第二列的条目丢失,那就更好了。
std::string line;
while(getline(std::cin,line))
{
// Splitting into 2 in case there is no space
// If you colum may contain space, replace below lines with better logic.
std::istringstream iss(line);
inputData[0] = inputData[1] = default_value;
iss >> inputData[0] >> inputData[1];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)