[英]Reading a list of names from a text File into a 2D array
我正在尝试将文本文件中的一列名称读入二维数组,这些名称的长度有所不同,但最长为8个字母,其中有10个字母。 这是我的两个for循环,用于读取名称然后进行打印。
for (int i = 0; i != 10; i++) {
for (int j = 0; j != 8; j++) {
infile >> textfileinfo[i][j];
}
}
然后打印出来的名字,我有这个循环。
for (int i = 0; i != 10; i++) {
for (int j = 0; j != 8; j++) {
cout << textfileinfo[i][j];
}
cout << " " << endl;
}
这是名称列表:
Victor
Eve
Juliet
Hector
Danielle
Romeo
Oscar
June
Ares
Dannae
什么最终发生的是它会读出名字用8个字,无论从下一个名字取多余的字符,所以Victor
变成VictorEv
,然后eJulietH
等。 一旦达到Victor的末端,如何使它从下一行开始,然后继续前进到Eve等。我也不允许使用指针。 任何帮助表示赞赏! 谢谢。
似乎显而易见的事情是使用getline
。 getline
旨在读取一行文本。
for (int i = 0; i != 10; i++) {
infile.getline(textfileinfo[i], 9);
}
请注意,getline的第二个参数是9,因为您需要一个额外的字符来存储以n个终止符结尾的每个C样式字符串。 这也意味着您的2D数组必须声明为每行至少包含9个字符。 稍微更安全的代码将是明确的
infile.getline(textfileinfo[i], sizeof textfileinfo[i]);
如果由于某种原因不允许您使用getline
则必须修改内部循环以检测并处理终止每一行的'\\n'
字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.