繁体   English   中英

从文本文件中读取名称列表到2D数组中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM