繁体   English   中英

如何在C ++中写入2D数组?

[英]How do I write to a 2D array in C++?

我在使用2D阵列时遇到麻烦。

我正在使用字符串数组的数组。

输入文件的每一行包含两个字符串,并且每一行必须是一个数组。

以下是我的代码和来自codons.txt的文本。 我的代码还有一些额外的cout命令用于调试。 当我运行它时,它不显示第二个字符串。

这是我的代码:

#include <iostream>
#include <cstdlib>
#include <cctype>
#include <fstream>

using namespace std;

int main()
{
    const int CODONSLENGTH=64;
    string codons[CODONSLENGTH][2];
    ifstream infile;
    //void readRNACodonTable(string [][2]);

    //readRNACodonTable(codons);

    infile.open("codons.txt");
    if (!infile.is_open()){
        cout << "ERROR: Coudn't open input file.";
        exit(1);
    }

    for (int i=0; i < CODONSLENGTH && !infile.eof(); i++) {
        cout << "DEGUG: start iteration " << i << endl;
        infile >> codons[i][0] >> codons[i][1];
        cout << "DEBUG: " << codons[i][0] << " " << codons[i][2] <<
        endl;
    }
    infile.close();

    system("PAUSE");
    return 0;
}

这是codons.txt:

GCU A
GCC A
GCA A
GCG A
CGU R
CGC R
CGA R
CGG R
AGA R
AGG R
AAU N
AAC N
GAU D
GAC D
UGU C
UGC C
CAA Q
CAG Q
GAA E
GAG E
GGU G
GGC G
GGA G
GGG G
CAU H
CAC H
AUU I
AUC I
AUA I
UUA L
UUG L
CUU L
CUC L
CUA L
CUG L
AAA K
AAG K
AUG M
UUU F
UUC F
CCU P
CCC P
CCA P
CCG P
UCU S
UCC S
UCA S
UCG S
AGU S
AGC S
ACU T
ACC T
ACA T
ACG T
UGG W
UAU Y
UAC Y
GUU V
GUC V
GUA V
GUG V

调试输出中有一个错字,第二个字符串的下标为2但应为1 (因为索引从0开始,第二个对象的索引为1 ,就像您在阅读行中所做的那样)。

for (int i=0; i < CODONSLENGTH && !infile.eof(); i++) {
    cout << "DEGUG: start iteration " << i << endl;
    infile >> codons[i][0] >> codons[i][1];
    cout << "DEBUG: " << codons[i][0] << " " << codons[i][1] << endl; // <-- HERE
}

您正在写codons[i][1]但正在阅读codons[i][2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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