如何将文本文档信息(名称和数字)写入多个数组

How do you write text doc info (names and numbers) into multiple arrays?

本文关键字:数字 数组 文本 文档 信息      更新时间:2023-10-16

我一直在绞尽脑汁地试图将这些信息从文本文档获取到几个不同的数组中。txt 文档中每个名字前面的数字是标识号,我想将所有这些放入一个双数组中。然后将每个名称放入单个字符串数组中。最后将每个名字后面的数字放入一个双 2d 数组中,该数组有 50 行(每个名字一个)和 7 列(每个客户端的七个分数/数字)。我不是要求任何人为我做功课,我只需要一些有关如何开始的信息。

using namespace std;
int main() { ifstream file("client_info.txt");
    string txtArray[450];
    for (int i = 0; i < 450; ++i)
    {
        file >> txtArray[i];
    }

我想也许我会把所有文本都放到一个字符串数组中,然后将该数组拆分为其他几个数组,但意识到使用字符串很困难,因为我需要数字加倍,以便以后找到客户的平均值分数。这是 txt 文档:

93史密斯739.15 634.36 257.02 639.32 376.75 360.56 666.96 81约翰逊888.08 975.86 672.78 176.35 114.58 511.24 502.56 50威廉姆斯222.27 171.83 232.83 609.79 726.69 444.89 520.63 32琼斯343.13 687.73 931.93 72.36 183.93 486.3 90.09 68棕色 623.39 968.13 67.59 528.93 703.95 329.02 875.95 24戴维斯97.48 296.61 568.49 990.18 448.36 567.52 179.42 21米勒147.68 38.87 64.78 463.19 172.39

914.68 827.42 90威尔逊687.7 595.19 930.52 77.27 877.45 774.44 599.83 29摩尔739.33402 825.29 859.63 937.14 405.2 89.22 12泰勒976.11 531.4 731.45 815.16 518.26 858.86 832.34 31安德森133.12 355.22 517.53 926.54 552.05 932.52 745.75 89托马斯217.72 266.14 622.99 541.35 618.49 268.9 243.63 87杰克逊352.81 772.31 109.43 139.14 430.43 625.92 207.79 46白色650.79 367.65 915.68 848.85 912.44 603.15 704.01 75哈里斯708.38 70.53 34.45 409.82 288.28 735.06 140.9 85马丁701.73 643.16 766.3 198.92 805.86 802.39 239.76 67汤普森993.9 274.75 72.87 928.41208.81 260.42 5.56 52加西亚871.48 646.48 914.77 98.61 724.86 680.7 363.15 60马丁内斯 293.38 448.24 985.08 135.2 277.77 705.58 567.81 69罗宾逊914.18 688.95 112.81 270.18 950.27 607.49 915.75 76克拉克956.12 110.6 820.53 140.97 906.2 529.52 75.24 82罗德里格斯224.88 324.32 672.74 502.27 768.99 116.42 880.86 39刘易斯805.89 274.54 211.14 82.04 804.41 259.69 408.08 48李80.06 381.7 975.29 448.33 578.49 548.19 818.85 26沃克657.74 0.74 741.06 533.84 887.36 38.35 619.1755厅 266.9 46.42 825.89 986.01 146.96 349.07 386.64 100艾伦293.22 423.57 150.53 519.25 16.96 65.54 688.44 11年轻870.69 192.46 82.19 92.46 971.38 156.49 16.48 57埃尔南德斯145.33 123.45 860.78 521.86 739.9 138.88 169.33 96国王411.31 340.93 447.04 14.26 744.1 425.83 57.87 4莱特503.48 488.13 603.12 198.14 425.51 216.28 49.75 64洛佩兹296.99 744.89 270.49 138.19 897.06 374.89 831.66 62山 910.95 676.68 442.98 961.03 567.6 739.49 225.26 37斯科特970.31468.48 788.85 903.66 897.93 124.04 983.01 34绿色 260.42 714.42 496.13 492.39 170.17 999.36 890.8 51 亚当斯 212.36 115.84 308.57 741.29 780.3 193.71 423.82 40贝克 316.91 671.36 398.53 190.99 424.34 457.68 584.16 47冈萨雷斯947.9 348.88 299.11 71.82 727.49 480.59 891.51 3纳尔逊160.13 962.1 903.76 107.34 127.07 844.07 575.1 36卡特981.92 250.09 5.39 866.43 182.93 135.12 224.91 78米切尔805.83 181.19 549.25 815.72 776.2 887.33 144.86 28佩雷斯144.04 616.81 637.07 342.41

818.58 901.72 104.02 8罗伯茨 880.38 62.34 591.34 721.18 184.64 378.08 439.94 99特纳21.83 227.82 378.42 680.24 336.24 703.13 52.36 2菲利普斯664.1 879.16 811.4 842.3 463.96 446.52 919.31 17坎贝尔392.91 26.12 591.74 766.1 30.91 108.24 863.81 33帕克359.87 606.99 61.67 188.85 474.87 159.02 907.38 30埃文斯 770.78 70.1 724.89 490.02 667.93 116.4 938.55 70爱德华兹 507.59 698.53 15.5 251.9 340.84 246.6 233.04 44柯林斯803.53 580.38 966.57 941.38 249.58 562.3 725.05

使多元素数组使用

type arrayName [x][y];

第一个数字是行,第二个数字是列。您可以使用 arrayName[0][x] 来设置您提到的名称,假设您将每一行用于单个名称以及属于该名称的任何属性。希望这对:)有所帮助

略了错误检查:

const int NUM_PERSONS = 50;
const int SCORES_PER_PERSON = 7;
double scores[NUM_PERSONS][SCORES_PER_PERSON];
int ids[NUM_PERSONS];
std::string names[NUM_PERSONS];
for(int i = 0; i < NUM_PERSONS; ++i) {
    file >> ids[i] >> names[i];
    for(int j = 0; j < SCORES_PER_PERSON; ++j) {
        file >> scores[i][j];
    }
}